Merge remote-tracking branch 'origin/master' into dev/auklet
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..813c22a
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "fpcagent"]
+	path = fpcagent
+	url = https://gerrit.opencord.org/fpcagent
diff --git a/.gitreview b/.gitreview
index 328aec6..703b4c2 100644
--- a/.gitreview
+++ b/.gitreview
@@ -3,4 +3,4 @@
 port=29418
 project=onos.git
 defaultremote=origin
-defaultbranch=master
+defaultbranch=dev/auklet
diff --git a/Dockerfile b/Dockerfile
index 51b1a58..c7a923c 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -53,7 +53,8 @@
 # 8181 - GUI
 # 8101 - ONOS CLI
 # 9876 - ONOS intra-cluster communication
-EXPOSE 6653 6640 8181 8101 9876
+# 8070 - FPC Agent
+EXPOSE 6653 6640 8181 8101 9876 8070
 
 # Get ready to run command
 ENTRYPOINT ["./bin/onos-service"]
diff --git a/drivers/barefoot-pro/BUCK b/drivers/barefoot-pro/BUCK
new file mode 100644
index 0000000..0a8f81d
--- /dev/null
+++ b/drivers/barefoot-pro/BUCK
@@ -0,0 +1,39 @@
+GRPC_VER = '1.3.1'
+
+COMPILE_DEPS = [
+    '//lib:CORE_DEPS',
+    '//drivers/barefoot:onos-drivers-barefoot',
+    '//drivers/p4runtime:onos-drivers-p4runtime',
+    '//providers/general/device:onos-providers-general-device',
+    '//incubator/api:onos-incubator-api',
+    ':thrift',
+]
+
+BUNDLES = [
+    ':onos-drivers-barefoot-pro',
+    ':thrift',
+]
+
+osgi_jar(
+    deps = COMPILE_DEPS,
+)
+
+onos_app(
+    app_name = 'org.onosproject.drivers.barefoot-pro',
+    title = 'Barefoot-Pro Drivers',
+    category = 'Drivers',
+    url = 'http://onosproject.org',
+    description = 'Adds support for Barefoot-based devices using both open and proprietary APIs',
+    included_bundles = BUNDLES,
+    required_apps = [
+        'org.onosproject.drivers.barefoot',
+    ],
+)
+
+remote_jar(
+    name = 'thrift',
+    out = 'thrift-0.11.0.jar',
+    url = 'mvn:org.apache.thrift:libthrift:jar:0.11.0',
+    sha1 = '4f4f1c1fbbae63258625dea71007fa41bee7edb3',
+    maven_coords = 'org.apache.thrift:libthrift:jar:NON-OSGI:0.11.0',
+)
diff --git a/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/BarefootProDriversLoader.java b/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/BarefootProDriversLoader.java
new file mode 100644
index 0000000..c6cf18c
--- /dev/null
+++ b/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/BarefootProDriversLoader.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.drivers.barefoot.pro;
+
+import org.apache.felix.scr.annotations.Component;
+import org.onosproject.net.driver.AbstractDriverLoader;
+
+/**
+ * Loader for the Barefoot-PRO device drivers.
+ */
+@Component(immediate = true)
+public class BarefootProDriversLoader extends AbstractDriverLoader {
+
+    public BarefootProDriversLoader() {
+        super("/barefoot-pro-drivers.xml");
+    }
+}
diff --git a/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/TofinoPortConfigurator.java b/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/TofinoPortConfigurator.java
new file mode 100644
index 0000000..adb1e8a
--- /dev/null
+++ b/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/TofinoPortConfigurator.java
@@ -0,0 +1,149 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.drivers.barefoot.pro;
+
+import org.apache.thrift.TException;
+import org.apache.thrift.protocol.TBinaryProtocol;
+import org.apache.thrift.protocol.TMultiplexedProtocol;
+import org.apache.thrift.protocol.TProtocol;
+import org.apache.thrift.transport.TSocket;
+import org.apache.thrift.transport.TTransport;
+import org.onosproject.drivers.barefoot.pro.pal.pal;
+import org.onosproject.drivers.barefoot.pro.pal.pal_autoneg_policy_t;
+import org.onosproject.drivers.barefoot.pro.pal.pal_fec_type_t;
+import org.onosproject.drivers.barefoot.pro.pal.pal_port_speed_t;
+import org.onosproject.incubator.net.config.basics.PortDescriptionsConfig;
+import org.onosproject.net.Device;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.config.NetworkConfigService;
+import org.onosproject.net.device.PortDescription;
+import org.onosproject.provider.general.device.api.GeneralProviderDeviceConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.List;
+import java.util.Map;
+
+import static java.lang.Boolean.parseBoolean;
+
+/**
+ * Class to configure ports on Tofino.
+ */
+final class TofinoPortConfigurator {
+
+    private final Logger log = LoggerFactory.getLogger(getClass());
+
+    private static final String P4RUNTIME = "p4runtime";
+    private static final String PROTOCOL_KEY_IP = "ip";
+    private static final String DEVICE_ID = "deviceId";
+    private static final String AUTONEG = "autoneg";
+    private static final int PAL_MGMT_PORT = 9090;
+    private static final String PAL_THRIFT_SERVICE = "pal";
+
+    private static final pal_fec_type_t DEFAULT_FEC_TYPE =
+            pal_fec_type_t.BF_FEC_TYP_NONE;
+
+    private final NetworkConfigService netcfgService;
+
+    TofinoPortConfigurator(NetworkConfigService netcfgService) {
+        this.netcfgService = netcfgService;
+    }
+
+    // FIXME Currently use thrift, may use gNMI to manage it in the future.
+    public void setupPorts(DeviceId deviceId) {
+        GeneralProviderDeviceConfig providerConfig = netcfgService
+                .getConfig(deviceId, GeneralProviderDeviceConfig.class);
+        PortDescriptionsConfig portConfig = netcfgService
+                .getConfig(deviceId, PortDescriptionsConfig.class);
+
+        Map<String, String> values = providerConfig.protocolsInfo()
+                .get(P4RUNTIME).configValues();
+
+        String ip = values.get(PROTOCOL_KEY_IP);
+        byte tofinoDeviceId = Byte.parseByte(values.get(DEVICE_ID));
+
+        List<PortDescription> ports = portConfig.portDescriptions();
+
+        if (ports == null) {
+            log.warn("Empty port configuration for {}, won't add any port", deviceId);
+            return;
+        }
+
+         ports.forEach(port -> {
+            pal_port_speed_t speed = getPortSpeed(port.portSpeed());
+            String anString = port.annotations().value(AUTONEG);
+            pal_autoneg_policy_t an = anString != null && parseBoolean(anString)
+                    ? pal_autoneg_policy_t.BF_AN_FORCE_ENABLE
+                    : pal_autoneg_policy_t.BF_AN_FORCE_DISABLE;
+            addAndEnablePort(deviceId, port.portNumber().name(),
+                             ip, tofinoDeviceId,
+                             (int) port.portNumber().toLong(), speed,
+                             DEFAULT_FEC_TYPE, an);
+        });
+    }
+
+    private pal_port_speed_t getPortSpeed(long speed) {
+        // Mbps -> BF_SPEED (1G~100G)
+        speed = speed / 1000;
+
+        if (speed >= 100) {
+            return pal_port_speed_t.BF_SPEED_100G;
+        }
+        if (speed >= 50) {
+            return pal_port_speed_t.BF_SPEED_50G;
+        }
+        if (speed >= 40) {
+            return pal_port_speed_t.BF_SPEED_40G;
+        }
+        if (speed >= 25) {
+            return pal_port_speed_t.BF_SPEED_25G;
+        }
+        if (speed >= 10) {
+            return pal_port_speed_t.BF_SPEED_10G;
+        }
+
+        return pal_port_speed_t.BF_SPEED_1G;
+    }
+
+    private void addAndEnablePort(DeviceId deviceId, String portName, String ip,
+                                  byte tofinoDeviceId,
+                                  int dp, pal_port_speed_t speed,
+                                  pal_fec_type_t fec,
+                                  pal_autoneg_policy_t an) {
+        log.info("Adding port {} to {}: dp={}, speed={}, an={}, fec={}",
+                 portName, deviceId, dp, speed.name(), an.name(), fec.name());
+
+        TTransport transport = new TSocket(ip, PAL_MGMT_PORT);
+        try {
+            transport.open();
+            TProtocol protocol = new TBinaryProtocol(transport);
+            TMultiplexedProtocol mProtocol = new TMultiplexedProtocol(
+                    protocol, PAL_THRIFT_SERVICE);
+            pal.Client client = new pal.Client(mProtocol);
+            client.pal_port_add(tofinoDeviceId, dp, speed, fec);
+            client.pal_port_an_set(tofinoDeviceId, dp, an);
+            client.pal_port_enable(tofinoDeviceId, dp);
+        } catch (TException x) {
+            log.error("Error adding port {} to device {}:\n{}",
+                      dp, tofinoDeviceId, ip, x);
+        } finally {
+            if (transport.isOpen()) {
+                transport.close();
+            }
+        }
+    }
+}
diff --git a/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/TofinoProPipelineProgrammable.java b/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/TofinoProPipelineProgrammable.java
new file mode 100644
index 0000000..8827502
--- /dev/null
+++ b/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/TofinoProPipelineProgrammable.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.drivers.barefoot.pro;
+
+import org.onosproject.drivers.barefoot.TofinoPipelineProgrammable;
+import org.onosproject.net.behaviour.PiPipelineProgrammable;
+import org.onosproject.net.config.NetworkConfigService;
+import org.onosproject.net.pi.model.PiPipeconf;
+
+import java.util.concurrent.CompletableFuture;
+
+/**
+ * Implementation of the PiPipelineProgrammable behaviour for a Tofino-based
+ * switch.
+ */
+public class TofinoProPipelineProgrammable
+        extends TofinoPipelineProgrammable
+        implements PiPipelineProgrammable {
+
+    @Override
+    public CompletableFuture<Boolean> deployPipeconf(PiPipeconf pipeconf) {
+        return super.deployPipeconf(pipeconf).thenApplyAsync(result -> {
+            if (result) {
+                doPortconfig();
+            }
+            return result;
+        });
+    }
+
+    private void doPortconfig() {
+        new TofinoPortConfigurator(handler().get(NetworkConfigService.class))
+                .setupPorts(data().deviceId());
+    }
+}
diff --git a/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/package-info.java b/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/package-info.java
new file mode 100644
index 0000000..2edbf53
--- /dev/null
+++ b/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/package-info.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Package for Barefoot-Pro device drivers.
+ */
+package org.onosproject.drivers.barefoot.pro;
diff --git a/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/pal/InvalidPalOperation.java b/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/pal/InvalidPalOperation.java
new file mode 100644
index 0000000..c47ad38
--- /dev/null
+++ b/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/pal/InvalidPalOperation.java
@@ -0,0 +1,368 @@
+package org.onosproject.drivers.barefoot.pro.pal;
+
+/**
+ * Autogenerated by Thrift Compiler (0.11.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.11.0)", date = "2018-01-31")
+public class InvalidPalOperation extends org.apache.thrift.TException implements org.apache.thrift.TBase<InvalidPalOperation, InvalidPalOperation._Fields>, java.io.Serializable, Cloneable, Comparable<InvalidPalOperation> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("InvalidPalOperation");
+
+  private static final org.apache.thrift.protocol.TField CODE_FIELD_DESC = new org.apache.thrift.protocol.TField("code", org.apache.thrift.protocol.TType.I32, (short)1);
+
+  private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new InvalidPalOperationStandardSchemeFactory();
+  private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new InvalidPalOperationTupleSchemeFactory();
+
+  public int code; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    CODE((short)1, "code");
+
+    private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+
+    static {
+      for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+        byName.put(field.getFieldName(), field);
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, or null if its not found.
+     */
+    public static _Fields findByThriftId(int fieldId) {
+      switch(fieldId) {
+        case 1: // CODE
+          return CODE;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(java.lang.String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final java.lang.String _fieldName;
+
+    _Fields(short thriftId, java.lang.String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public java.lang.String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  private static final int __CODE_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.CODE, new org.apache.thrift.meta_data.FieldMetaData("code", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(InvalidPalOperation.class, metaDataMap);
+  }
+
+  public InvalidPalOperation() {
+  }
+
+  public InvalidPalOperation(
+    int code)
+  {
+    this();
+    this.code = code;
+    setCodeIsSet(true);
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public InvalidPalOperation(InvalidPalOperation other) {
+    __isset_bitfield = other.__isset_bitfield;
+    this.code = other.code;
+  }
+
+  public InvalidPalOperation deepCopy() {
+    return new InvalidPalOperation(this);
+  }
+
+  @Override
+  public void clear() {
+    setCodeIsSet(false);
+    this.code = 0;
+  }
+
+  public int getCode() {
+    return this.code;
+  }
+
+  public InvalidPalOperation setCode(int code) {
+    this.code = code;
+    setCodeIsSet(true);
+    return this;
+  }
+
+  public void unsetCode() {
+    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __CODE_ISSET_ID);
+  }
+
+  /** Returns true if field code is set (has been assigned a value) and false otherwise */
+  public boolean isSetCode() {
+    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __CODE_ISSET_ID);
+  }
+
+  public void setCodeIsSet(boolean value) {
+    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __CODE_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, java.lang.Object value) {
+    switch (field) {
+    case CODE:
+      if (value == null) {
+        unsetCode();
+      } else {
+        setCode((java.lang.Integer)value);
+      }
+      break;
+
+    }
+  }
+
+  public java.lang.Object getFieldValue(_Fields field) {
+    switch (field) {
+    case CODE:
+      return getCode();
+
+    }
+    throw new java.lang.IllegalStateException();
+  }
+
+  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+  public boolean isSet(_Fields field) {
+    if (field == null) {
+      throw new java.lang.IllegalArgumentException();
+    }
+
+    switch (field) {
+    case CODE:
+      return isSetCode();
+    }
+    throw new java.lang.IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(java.lang.Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof InvalidPalOperation)
+      return this.equals((InvalidPalOperation)that);
+    return false;
+  }
+
+  public boolean equals(InvalidPalOperation that) {
+    if (that == null)
+      return false;
+    if (this == that)
+      return true;
+
+    boolean this_present_code = true;
+    boolean that_present_code = true;
+    if (this_present_code || that_present_code) {
+      if (!(this_present_code && that_present_code))
+        return false;
+      if (this.code != that.code)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    int hashCode = 1;
+
+    hashCode = hashCode * 8191 + code;
+
+    return hashCode;
+  }
+
+  @Override
+  public int compareTo(InvalidPalOperation other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = java.lang.Boolean.valueOf(isSetCode()).compareTo(other.isSetCode());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCode()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.code, other.code);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+    scheme(iprot).read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    scheme(oprot).write(oprot, this);
+  }
+
+  @Override
+  public java.lang.String toString() {
+    java.lang.StringBuilder sb = new java.lang.StringBuilder("InvalidPalOperation(");
+    boolean first = true;
+
+    sb.append("code:");
+    sb.append(this.code);
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+    try {
+      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+      __isset_bitfield = 0;
+      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class InvalidPalOperationStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+    public InvalidPalOperationStandardScheme getScheme() {
+      return new InvalidPalOperationStandardScheme();
+    }
+  }
+
+  private static class InvalidPalOperationStandardScheme extends org.apache.thrift.scheme.StandardScheme<InvalidPalOperation> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, InvalidPalOperation struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // CODE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.code = iprot.readI32();
+              struct.setCodeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, InvalidPalOperation struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      oprot.writeFieldBegin(CODE_FIELD_DESC);
+      oprot.writeI32(struct.code);
+      oprot.writeFieldEnd();
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class InvalidPalOperationTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+    public InvalidPalOperationTupleScheme getScheme() {
+      return new InvalidPalOperationTupleScheme();
+    }
+  }
+
+  private static class InvalidPalOperationTupleScheme extends org.apache.thrift.scheme.TupleScheme<InvalidPalOperation> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, InvalidPalOperation struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+      java.util.BitSet optionals = new java.util.BitSet();
+      if (struct.isSetCode()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetCode()) {
+        oprot.writeI32(struct.code);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, InvalidPalOperation struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+      java.util.BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        struct.code = iprot.readI32();
+        struct.setCodeIsSet(true);
+      }
+    }
+  }
+
+  private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+    return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+  }
+}
+
diff --git a/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/pal/pal.java b/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/pal/pal.java
new file mode 100644
index 0000000..94226f2
--- /dev/null
+++ b/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/pal/pal.java
@@ -0,0 +1,14769 @@
+package org.onosproject.drivers.barefoot.pro.pal;
+
+/**
+ * Autogenerated by Thrift Compiler (0.11.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.11.0)", date = "2018-01-31")
+public class pal {
+
+  public interface Iface {
+
+    public int pal_port_add(byte device, int dev_port, pal_port_speed_t ps, pal_fec_type_t fec) throws InvalidPalOperation, org.apache.thrift.TException;
+
+    public int pal_port_add_all(byte device, pal_port_speed_t ps, pal_fec_type_t fec) throws InvalidPalOperation, org.apache.thrift.TException;
+
+    public int pal_port_del(byte device, int dev_port) throws InvalidPalOperation, org.apache.thrift.TException;
+
+    public int pal_port_del_all(byte device) throws InvalidPalOperation, org.apache.thrift.TException;
+
+    public int pal_port_enable(byte device, int dev_port) throws InvalidPalOperation, org.apache.thrift.TException;
+
+    public int pal_port_enable_all(byte device) throws InvalidPalOperation, org.apache.thrift.TException;
+
+    public int pal_port_dis(byte device, int dev_port) throws InvalidPalOperation, org.apache.thrift.TException;
+
+    public pal_oper_status_t pal_port_oper_status_get(byte device, int dev_port) throws InvalidPalOperation, org.apache.thrift.TException;
+
+    public boolean pal_port_is_valid(byte device, int dev_port) throws InvalidPalOperation, org.apache.thrift.TException;
+
+    public int pal_port_an_set(byte device, int dev_port, pal_autoneg_policy_t an) throws InvalidPalOperation, org.apache.thrift.TException;
+
+    public int pal_port_an_set_all(byte device, pal_autoneg_policy_t an) throws InvalidPalOperation, org.apache.thrift.TException;
+
+    public int pal_port_loopback_mode_set(byte dev, int dev_port, pal_loopback_mod_t mode) throws InvalidPalOperation, org.apache.thrift.TException;
+
+    public int pal_port_front_panel_port_to_dev_port_get(byte dev, int front_port, int front_chnl) throws InvalidPalOperation, org.apache.thrift.TException;
+
+  }
+
+  public interface AsyncIface {
+
+    public void pal_port_add(byte device, int dev_port, pal_port_speed_t ps, pal_fec_type_t fec, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException;
+
+    public void pal_port_add_all(byte device, pal_port_speed_t ps, pal_fec_type_t fec, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException;
+
+    public void pal_port_del(byte device, int dev_port, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException;
+
+    public void pal_port_del_all(byte device, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException;
+
+    public void pal_port_enable(byte device, int dev_port, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException;
+
+    public void pal_port_enable_all(byte device, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException;
+
+    public void pal_port_dis(byte device, int dev_port, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException;
+
+    public void pal_port_oper_status_get(byte device, int dev_port, org.apache.thrift.async.AsyncMethodCallback<pal_oper_status_t> resultHandler) throws org.apache.thrift.TException;
+
+    public void pal_port_is_valid(byte device, int dev_port, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws org.apache.thrift.TException;
+
+    public void pal_port_an_set(byte device, int dev_port, pal_autoneg_policy_t an, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException;
+
+    public void pal_port_an_set_all(byte device, pal_autoneg_policy_t an, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException;
+
+    public void pal_port_loopback_mode_set(byte dev, int dev_port, pal_loopback_mod_t mode, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException;
+
+    public void pal_port_front_panel_port_to_dev_port_get(byte dev, int front_port, int front_chnl, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException;
+
+  }
+
+  public static class Client extends org.apache.thrift.TServiceClient implements Iface {
+    public static class Factory implements org.apache.thrift.TServiceClientFactory<Client> {
+      public Factory() {}
+      public Client getClient(org.apache.thrift.protocol.TProtocol prot) {
+        return new Client(prot);
+      }
+      public Client getClient(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TProtocol oprot) {
+        return new Client(iprot, oprot);
+      }
+    }
+
+    public Client(org.apache.thrift.protocol.TProtocol prot)
+    {
+      super(prot, prot);
+    }
+
+    public Client(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TProtocol oprot) {
+      super(iprot, oprot);
+    }
+
+    public int pal_port_add(byte device, int dev_port, pal_port_speed_t ps, pal_fec_type_t fec) throws InvalidPalOperation, org.apache.thrift.TException
+    {
+      send_pal_port_add(device, dev_port, ps, fec);
+      return recv_pal_port_add();
+    }
+
+    public void send_pal_port_add(byte device, int dev_port, pal_port_speed_t ps, pal_fec_type_t fec) throws org.apache.thrift.TException
+    {
+      pal_port_add_args args = new pal_port_add_args();
+      args.setDevice(device);
+      args.setDev_port(dev_port);
+      args.setPs(ps);
+      args.setFec(fec);
+      sendBase("pal_port_add", args);
+    }
+
+    public int recv_pal_port_add() throws InvalidPalOperation, org.apache.thrift.TException
+    {
+      pal_port_add_result result = new pal_port_add_result();
+      receiveBase(result, "pal_port_add");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ouch != null) {
+        throw result.ouch;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "pal_port_add failed: unknown result");
+    }
+
+    public int pal_port_add_all(byte device, pal_port_speed_t ps, pal_fec_type_t fec) throws InvalidPalOperation, org.apache.thrift.TException
+    {
+      send_pal_port_add_all(device, ps, fec);
+      return recv_pal_port_add_all();
+    }
+
+    public void send_pal_port_add_all(byte device, pal_port_speed_t ps, pal_fec_type_t fec) throws org.apache.thrift.TException
+    {
+      pal_port_add_all_args args = new pal_port_add_all_args();
+      args.setDevice(device);
+      args.setPs(ps);
+      args.setFec(fec);
+      sendBase("pal_port_add_all", args);
+    }
+
+    public int recv_pal_port_add_all() throws InvalidPalOperation, org.apache.thrift.TException
+    {
+      pal_port_add_all_result result = new pal_port_add_all_result();
+      receiveBase(result, "pal_port_add_all");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ouch != null) {
+        throw result.ouch;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "pal_port_add_all failed: unknown result");
+    }
+
+    public int pal_port_del(byte device, int dev_port) throws InvalidPalOperation, org.apache.thrift.TException
+    {
+      send_pal_port_del(device, dev_port);
+      return recv_pal_port_del();
+    }
+
+    public void send_pal_port_del(byte device, int dev_port) throws org.apache.thrift.TException
+    {
+      pal_port_del_args args = new pal_port_del_args();
+      args.setDevice(device);
+      args.setDev_port(dev_port);
+      sendBase("pal_port_del", args);
+    }
+
+    public int recv_pal_port_del() throws InvalidPalOperation, org.apache.thrift.TException
+    {
+      pal_port_del_result result = new pal_port_del_result();
+      receiveBase(result, "pal_port_del");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ouch != null) {
+        throw result.ouch;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "pal_port_del failed: unknown result");
+    }
+
+    public int pal_port_del_all(byte device) throws InvalidPalOperation, org.apache.thrift.TException
+    {
+      send_pal_port_del_all(device);
+      return recv_pal_port_del_all();
+    }
+
+    public void send_pal_port_del_all(byte device) throws org.apache.thrift.TException
+    {
+      pal_port_del_all_args args = new pal_port_del_all_args();
+      args.setDevice(device);
+      sendBase("pal_port_del_all", args);
+    }
+
+    public int recv_pal_port_del_all() throws InvalidPalOperation, org.apache.thrift.TException
+    {
+      pal_port_del_all_result result = new pal_port_del_all_result();
+      receiveBase(result, "pal_port_del_all");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ouch != null) {
+        throw result.ouch;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "pal_port_del_all failed: unknown result");
+    }
+
+    public int pal_port_enable(byte device, int dev_port) throws InvalidPalOperation, org.apache.thrift.TException
+    {
+      send_pal_port_enable(device, dev_port);
+      return recv_pal_port_enable();
+    }
+
+    public void send_pal_port_enable(byte device, int dev_port) throws org.apache.thrift.TException
+    {
+      pal_port_enable_args args = new pal_port_enable_args();
+      args.setDevice(device);
+      args.setDev_port(dev_port);
+      sendBase("pal_port_enable", args);
+    }
+
+    public int recv_pal_port_enable() throws InvalidPalOperation, org.apache.thrift.TException
+    {
+      pal_port_enable_result result = new pal_port_enable_result();
+      receiveBase(result, "pal_port_enable");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ouch != null) {
+        throw result.ouch;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "pal_port_enable failed: unknown result");
+    }
+
+    public int pal_port_enable_all(byte device) throws InvalidPalOperation, org.apache.thrift.TException
+    {
+      send_pal_port_enable_all(device);
+      return recv_pal_port_enable_all();
+    }
+
+    public void send_pal_port_enable_all(byte device) throws org.apache.thrift.TException
+    {
+      pal_port_enable_all_args args = new pal_port_enable_all_args();
+      args.setDevice(device);
+      sendBase("pal_port_enable_all", args);
+    }
+
+    public int recv_pal_port_enable_all() throws InvalidPalOperation, org.apache.thrift.TException
+    {
+      pal_port_enable_all_result result = new pal_port_enable_all_result();
+      receiveBase(result, "pal_port_enable_all");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ouch != null) {
+        throw result.ouch;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "pal_port_enable_all failed: unknown result");
+    }
+
+    public int pal_port_dis(byte device, int dev_port) throws InvalidPalOperation, org.apache.thrift.TException
+    {
+      send_pal_port_dis(device, dev_port);
+      return recv_pal_port_dis();
+    }
+
+    public void send_pal_port_dis(byte device, int dev_port) throws org.apache.thrift.TException
+    {
+      pal_port_dis_args args = new pal_port_dis_args();
+      args.setDevice(device);
+      args.setDev_port(dev_port);
+      sendBase("pal_port_dis", args);
+    }
+
+    public int recv_pal_port_dis() throws InvalidPalOperation, org.apache.thrift.TException
+    {
+      pal_port_dis_result result = new pal_port_dis_result();
+      receiveBase(result, "pal_port_dis");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ouch != null) {
+        throw result.ouch;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "pal_port_dis failed: unknown result");
+    }
+
+    public pal_oper_status_t pal_port_oper_status_get(byte device, int dev_port) throws InvalidPalOperation, org.apache.thrift.TException
+    {
+      send_pal_port_oper_status_get(device, dev_port);
+      return recv_pal_port_oper_status_get();
+    }
+
+    public void send_pal_port_oper_status_get(byte device, int dev_port) throws org.apache.thrift.TException
+    {
+      pal_port_oper_status_get_args args = new pal_port_oper_status_get_args();
+      args.setDevice(device);
+      args.setDev_port(dev_port);
+      sendBase("pal_port_oper_status_get", args);
+    }
+
+    public pal_oper_status_t recv_pal_port_oper_status_get() throws InvalidPalOperation, org.apache.thrift.TException
+    {
+      pal_port_oper_status_get_result result = new pal_port_oper_status_get_result();
+      receiveBase(result, "pal_port_oper_status_get");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ouch != null) {
+        throw result.ouch;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "pal_port_oper_status_get failed: unknown result");
+    }
+
+    public boolean pal_port_is_valid(byte device, int dev_port) throws InvalidPalOperation, org.apache.thrift.TException
+    {
+      send_pal_port_is_valid(device, dev_port);
+      return recv_pal_port_is_valid();
+    }
+
+    public void send_pal_port_is_valid(byte device, int dev_port) throws org.apache.thrift.TException
+    {
+      pal_port_is_valid_args args = new pal_port_is_valid_args();
+      args.setDevice(device);
+      args.setDev_port(dev_port);
+      sendBase("pal_port_is_valid", args);
+    }
+
+    public boolean recv_pal_port_is_valid() throws InvalidPalOperation, org.apache.thrift.TException
+    {
+      pal_port_is_valid_result result = new pal_port_is_valid_result();
+      receiveBase(result, "pal_port_is_valid");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ouch != null) {
+        throw result.ouch;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "pal_port_is_valid failed: unknown result");
+    }
+
+    public int pal_port_an_set(byte device, int dev_port, pal_autoneg_policy_t an) throws InvalidPalOperation, org.apache.thrift.TException
+    {
+      send_pal_port_an_set(device, dev_port, an);
+      return recv_pal_port_an_set();
+    }
+
+    public void send_pal_port_an_set(byte device, int dev_port, pal_autoneg_policy_t an) throws org.apache.thrift.TException
+    {
+      pal_port_an_set_args args = new pal_port_an_set_args();
+      args.setDevice(device);
+      args.setDev_port(dev_port);
+      args.setAn(an);
+      sendBase("pal_port_an_set", args);
+    }
+
+    public int recv_pal_port_an_set() throws InvalidPalOperation, org.apache.thrift.TException
+    {
+      pal_port_an_set_result result = new pal_port_an_set_result();
+      receiveBase(result, "pal_port_an_set");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ouch != null) {
+        throw result.ouch;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "pal_port_an_set failed: unknown result");
+    }
+
+    public int pal_port_an_set_all(byte device, pal_autoneg_policy_t an) throws InvalidPalOperation, org.apache.thrift.TException
+    {
+      send_pal_port_an_set_all(device, an);
+      return recv_pal_port_an_set_all();
+    }
+
+    public void send_pal_port_an_set_all(byte device, pal_autoneg_policy_t an) throws org.apache.thrift.TException
+    {
+      pal_port_an_set_all_args args = new pal_port_an_set_all_args();
+      args.setDevice(device);
+      args.setAn(an);
+      sendBase("pal_port_an_set_all", args);
+    }
+
+    public int recv_pal_port_an_set_all() throws InvalidPalOperation, org.apache.thrift.TException
+    {
+      pal_port_an_set_all_result result = new pal_port_an_set_all_result();
+      receiveBase(result, "pal_port_an_set_all");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ouch != null) {
+        throw result.ouch;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "pal_port_an_set_all failed: unknown result");
+    }
+
+    public int pal_port_loopback_mode_set(byte dev, int dev_port, pal_loopback_mod_t mode) throws InvalidPalOperation, org.apache.thrift.TException
+    {
+      send_pal_port_loopback_mode_set(dev, dev_port, mode);
+      return recv_pal_port_loopback_mode_set();
+    }
+
+    public void send_pal_port_loopback_mode_set(byte dev, int dev_port, pal_loopback_mod_t mode) throws org.apache.thrift.TException
+    {
+      pal_port_loopback_mode_set_args args = new pal_port_loopback_mode_set_args();
+      args.setDev(dev);
+      args.setDev_port(dev_port);
+      args.setMode(mode);
+      sendBase("pal_port_loopback_mode_set", args);
+    }
+
+    public int recv_pal_port_loopback_mode_set() throws InvalidPalOperation, org.apache.thrift.TException
+    {
+      pal_port_loopback_mode_set_result result = new pal_port_loopback_mode_set_result();
+      receiveBase(result, "pal_port_loopback_mode_set");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ouch != null) {
+        throw result.ouch;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "pal_port_loopback_mode_set failed: unknown result");
+    }
+
+    public int pal_port_front_panel_port_to_dev_port_get(byte dev, int front_port, int front_chnl) throws InvalidPalOperation, org.apache.thrift.TException
+    {
+      send_pal_port_front_panel_port_to_dev_port_get(dev, front_port, front_chnl);
+      return recv_pal_port_front_panel_port_to_dev_port_get();
+    }
+
+    public void send_pal_port_front_panel_port_to_dev_port_get(byte dev, int front_port, int front_chnl) throws org.apache.thrift.TException
+    {
+      pal_port_front_panel_port_to_dev_port_get_args args = new pal_port_front_panel_port_to_dev_port_get_args();
+      args.setDev(dev);
+      args.setFront_port(front_port);
+      args.setFront_chnl(front_chnl);
+      sendBase("pal_port_front_panel_port_to_dev_port_get", args);
+    }
+
+    public int recv_pal_port_front_panel_port_to_dev_port_get() throws InvalidPalOperation, org.apache.thrift.TException
+    {
+      pal_port_front_panel_port_to_dev_port_get_result result = new pal_port_front_panel_port_to_dev_port_get_result();
+      receiveBase(result, "pal_port_front_panel_port_to_dev_port_get");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ouch != null) {
+        throw result.ouch;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "pal_port_front_panel_port_to_dev_port_get failed: unknown result");
+    }
+
+  }
+  public static class AsyncClient extends org.apache.thrift.async.TAsyncClient implements AsyncIface {
+    public static class Factory implements org.apache.thrift.async.TAsyncClientFactory<AsyncClient> {
+      private org.apache.thrift.async.TAsyncClientManager clientManager;
+      private org.apache.thrift.protocol.TProtocolFactory protocolFactory;
+      public Factory(org.apache.thrift.async.TAsyncClientManager clientManager, org.apache.thrift.protocol.TProtocolFactory protocolFactory) {
+        this.clientManager = clientManager;
+        this.protocolFactory = protocolFactory;
+      }
+      public AsyncClient getAsyncClient(org.apache.thrift.transport.TNonblockingTransport transport) {
+        return new AsyncClient(protocolFactory, clientManager, transport);
+      }
+    }
+
+    public AsyncClient(org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.async.TAsyncClientManager clientManager, org.apache.thrift.transport.TNonblockingTransport transport) {
+      super(protocolFactory, clientManager, transport);
+    }
+
+    public void pal_port_add(byte device, int dev_port, pal_port_speed_t ps, pal_fec_type_t fec, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      pal_port_add_call method_call = new pal_port_add_call(device, dev_port, ps, fec, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class pal_port_add_call extends org.apache.thrift.async.TAsyncMethodCall<Integer> {
+      private byte device;
+      private int dev_port;
+      private pal_port_speed_t ps;
+      private pal_fec_type_t fec;
+      public pal_port_add_call(byte device, int dev_port, pal_port_speed_t ps, pal_fec_type_t fec, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.device = device;
+        this.dev_port = dev_port;
+        this.ps = ps;
+        this.fec = fec;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("pal_port_add", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        pal_port_add_args args = new pal_port_add_args();
+        args.setDevice(device);
+        args.setDev_port(dev_port);
+        args.setPs(ps);
+        args.setFec(fec);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public Integer getResult() throws InvalidPalOperation, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_pal_port_add();
+      }
+    }
+
+    public void pal_port_add_all(byte device, pal_port_speed_t ps, pal_fec_type_t fec, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      pal_port_add_all_call method_call = new pal_port_add_all_call(device, ps, fec, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class pal_port_add_all_call extends org.apache.thrift.async.TAsyncMethodCall<Integer> {
+      private byte device;
+      private pal_port_speed_t ps;
+      private pal_fec_type_t fec;
+      public pal_port_add_all_call(byte device, pal_port_speed_t ps, pal_fec_type_t fec, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.device = device;
+        this.ps = ps;
+        this.fec = fec;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("pal_port_add_all", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        pal_port_add_all_args args = new pal_port_add_all_args();
+        args.setDevice(device);
+        args.setPs(ps);
+        args.setFec(fec);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public Integer getResult() throws InvalidPalOperation, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_pal_port_add_all();
+      }
+    }
+
+    public void pal_port_del(byte device, int dev_port, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      pal_port_del_call method_call = new pal_port_del_call(device, dev_port, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class pal_port_del_call extends org.apache.thrift.async.TAsyncMethodCall<Integer> {
+      private byte device;
+      private int dev_port;
+      public pal_port_del_call(byte device, int dev_port, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.device = device;
+        this.dev_port = dev_port;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("pal_port_del", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        pal_port_del_args args = new pal_port_del_args();
+        args.setDevice(device);
+        args.setDev_port(dev_port);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public Integer getResult() throws InvalidPalOperation, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_pal_port_del();
+      }
+    }
+
+    public void pal_port_del_all(byte device, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      pal_port_del_all_call method_call = new pal_port_del_all_call(device, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class pal_port_del_all_call extends org.apache.thrift.async.TAsyncMethodCall<Integer> {
+      private byte device;
+      public pal_port_del_all_call(byte device, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.device = device;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("pal_port_del_all", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        pal_port_del_all_args args = new pal_port_del_all_args();
+        args.setDevice(device);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public Integer getResult() throws InvalidPalOperation, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_pal_port_del_all();
+      }
+    }
+
+    public void pal_port_enable(byte device, int dev_port, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      pal_port_enable_call method_call = new pal_port_enable_call(device, dev_port, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class pal_port_enable_call extends org.apache.thrift.async.TAsyncMethodCall<Integer> {
+      private byte device;
+      private int dev_port;
+      public pal_port_enable_call(byte device, int dev_port, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.device = device;
+        this.dev_port = dev_port;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("pal_port_enable", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        pal_port_enable_args args = new pal_port_enable_args();
+        args.setDevice(device);
+        args.setDev_port(dev_port);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public Integer getResult() throws InvalidPalOperation, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_pal_port_enable();
+      }
+    }
+
+    public void pal_port_enable_all(byte device, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      pal_port_enable_all_call method_call = new pal_port_enable_all_call(device, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class pal_port_enable_all_call extends org.apache.thrift.async.TAsyncMethodCall<Integer> {
+      private byte device;
+      public pal_port_enable_all_call(byte device, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.device = device;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("pal_port_enable_all", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        pal_port_enable_all_args args = new pal_port_enable_all_args();
+        args.setDevice(device);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public Integer getResult() throws InvalidPalOperation, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_pal_port_enable_all();
+      }
+    }
+
+    public void pal_port_dis(byte device, int dev_port, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      pal_port_dis_call method_call = new pal_port_dis_call(device, dev_port, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class pal_port_dis_call extends org.apache.thrift.async.TAsyncMethodCall<Integer> {
+      private byte device;
+      private int dev_port;
+      public pal_port_dis_call(byte device, int dev_port, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.device = device;
+        this.dev_port = dev_port;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("pal_port_dis", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        pal_port_dis_args args = new pal_port_dis_args();
+        args.setDevice(device);
+        args.setDev_port(dev_port);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public Integer getResult() throws InvalidPalOperation, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_pal_port_dis();
+      }
+    }
+
+    public void pal_port_oper_status_get(byte device, int dev_port, org.apache.thrift.async.AsyncMethodCallback<pal_oper_status_t> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      pal_port_oper_status_get_call method_call = new pal_port_oper_status_get_call(device, dev_port, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class pal_port_oper_status_get_call extends org.apache.thrift.async.TAsyncMethodCall<pal_oper_status_t> {
+      private byte device;
+      private int dev_port;
+      public pal_port_oper_status_get_call(byte device, int dev_port, org.apache.thrift.async.AsyncMethodCallback<pal_oper_status_t> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.device = device;
+        this.dev_port = dev_port;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("pal_port_oper_status_get", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        pal_port_oper_status_get_args args = new pal_port_oper_status_get_args();
+        args.setDevice(device);
+        args.setDev_port(dev_port);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public pal_oper_status_t getResult() throws InvalidPalOperation, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_pal_port_oper_status_get();
+      }
+    }
+
+    public void pal_port_is_valid(byte device, int dev_port, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      pal_port_is_valid_call method_call = new pal_port_is_valid_call(device, dev_port, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class pal_port_is_valid_call extends org.apache.thrift.async.TAsyncMethodCall<Boolean> {
+      private byte device;
+      private int dev_port;
+      public pal_port_is_valid_call(byte device, int dev_port, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.device = device;
+        this.dev_port = dev_port;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("pal_port_is_valid", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        pal_port_is_valid_args args = new pal_port_is_valid_args();
+        args.setDevice(device);
+        args.setDev_port(dev_port);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public Boolean getResult() throws InvalidPalOperation, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_pal_port_is_valid();
+      }
+    }
+
+    public void pal_port_an_set(byte device, int dev_port, pal_autoneg_policy_t an, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      pal_port_an_set_call method_call = new pal_port_an_set_call(device, dev_port, an, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class pal_port_an_set_call extends org.apache.thrift.async.TAsyncMethodCall<Integer> {
+      private byte device;
+      private int dev_port;
+      private pal_autoneg_policy_t an;
+      public pal_port_an_set_call(byte device, int dev_port, pal_autoneg_policy_t an, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.device = device;
+        this.dev_port = dev_port;
+        this.an = an;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("pal_port_an_set", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        pal_port_an_set_args args = new pal_port_an_set_args();
+        args.setDevice(device);
+        args.setDev_port(dev_port);
+        args.setAn(an);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public Integer getResult() throws InvalidPalOperation, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_pal_port_an_set();
+      }
+    }
+
+    public void pal_port_an_set_all(byte device, pal_autoneg_policy_t an, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      pal_port_an_set_all_call method_call = new pal_port_an_set_all_call(device, an, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class pal_port_an_set_all_call extends org.apache.thrift.async.TAsyncMethodCall<Integer> {
+      private byte device;
+      private pal_autoneg_policy_t an;
+      public pal_port_an_set_all_call(byte device, pal_autoneg_policy_t an, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.device = device;
+        this.an = an;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("pal_port_an_set_all", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        pal_port_an_set_all_args args = new pal_port_an_set_all_args();
+        args.setDevice(device);
+        args.setAn(an);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public Integer getResult() throws InvalidPalOperation, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_pal_port_an_set_all();
+      }
+    }
+
+    public void pal_port_loopback_mode_set(byte dev, int dev_port, pal_loopback_mod_t mode, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      pal_port_loopback_mode_set_call method_call = new pal_port_loopback_mode_set_call(dev, dev_port, mode, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class pal_port_loopback_mode_set_call extends org.apache.thrift.async.TAsyncMethodCall<Integer> {
+      private byte dev;
+      private int dev_port;
+      private pal_loopback_mod_t mode;
+      public pal_port_loopback_mode_set_call(byte dev, int dev_port, pal_loopback_mod_t mode, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.dev = dev;
+        this.dev_port = dev_port;
+        this.mode = mode;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("pal_port_loopback_mode_set", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        pal_port_loopback_mode_set_args args = new pal_port_loopback_mode_set_args();
+        args.setDev(dev);
+        args.setDev_port(dev_port);
+        args.setMode(mode);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public Integer getResult() throws InvalidPalOperation, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_pal_port_loopback_mode_set();
+      }
+    }
+
+    public void pal_port_front_panel_port_to_dev_port_get(byte dev, int front_port, int front_chnl, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      pal_port_front_panel_port_to_dev_port_get_call method_call = new pal_port_front_panel_port_to_dev_port_get_call(dev, front_port, front_chnl, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class pal_port_front_panel_port_to_dev_port_get_call extends org.apache.thrift.async.TAsyncMethodCall<Integer> {
+      private byte dev;
+      private int front_port;
+      private int front_chnl;
+      public pal_port_front_panel_port_to_dev_port_get_call(byte dev, int front_port, int front_chnl, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.dev = dev;
+        this.front_port = front_port;
+        this.front_chnl = front_chnl;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("pal_port_front_panel_port_to_dev_port_get", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        pal_port_front_panel_port_to_dev_port_get_args args = new pal_port_front_panel_port_to_dev_port_get_args();
+        args.setDev(dev);
+        args.setFront_port(front_port);
+        args.setFront_chnl(front_chnl);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public Integer getResult() throws InvalidPalOperation, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_pal_port_front_panel_port_to_dev_port_get();
+      }
+    }
+
+  }
+
+  public static class Processor<I extends Iface> extends org.apache.thrift.TBaseProcessor<I> implements org.apache.thrift.TProcessor {
+    private static final org.slf4j.Logger _LOGGER = org.slf4j.LoggerFactory.getLogger(Processor.class.getName());
+    public Processor(I iface) {
+      super(iface, getProcessMap(new java.util.HashMap<String, org.apache.thrift.ProcessFunction<I, ? extends org.apache.thrift.TBase>>()));
+    }
+
+    protected Processor(I iface, java.util.Map<String, org.apache.thrift.ProcessFunction<I, ? extends org.apache.thrift.TBase>> processMap) {
+      super(iface, getProcessMap(processMap));
+    }
+
+    private static <I extends Iface> java.util.Map<String,  org.apache.thrift.ProcessFunction<I, ? extends org.apache.thrift.TBase>> getProcessMap(java.util.Map<String, org.apache.thrift.ProcessFunction<I, ? extends  org.apache.thrift.TBase>> processMap) {
+      processMap.put("pal_port_add", new pal_port_add());
+      processMap.put("pal_port_add_all", new pal_port_add_all());
+      processMap.put("pal_port_del", new pal_port_del());
+      processMap.put("pal_port_del_all", new pal_port_del_all());
+      processMap.put("pal_port_enable", new pal_port_enable());
+      processMap.put("pal_port_enable_all", new pal_port_enable_all());
+      processMap.put("pal_port_dis", new pal_port_dis());
+      processMap.put("pal_port_oper_status_get", new pal_port_oper_status_get());
+      processMap.put("pal_port_is_valid", new pal_port_is_valid());
+      processMap.put("pal_port_an_set", new pal_port_an_set());
+      processMap.put("pal_port_an_set_all", new pal_port_an_set_all());
+      processMap.put("pal_port_loopback_mode_set", new pal_port_loopback_mode_set());
+      processMap.put("pal_port_front_panel_port_to_dev_port_get", new pal_port_front_panel_port_to_dev_port_get());
+      return processMap;
+    }
+
+    public static class pal_port_add<I extends Iface> extends org.apache.thrift.ProcessFunction<I, pal_port_add_args> {
+      public pal_port_add() {
+        super("pal_port_add");
+      }
+
+      public pal_port_add_args getEmptyArgsInstance() {
+        return new pal_port_add_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      @Override
+      protected boolean handleRuntimeExceptions() {
+        return false;
+      }
+
+      public pal_port_add_result getResult(I iface, pal_port_add_args args) throws org.apache.thrift.TException {
+        pal_port_add_result result = new pal_port_add_result();
+        try {
+          result.success = iface.pal_port_add(args.device, args.dev_port, args.ps, args.fec);
+          result.setSuccessIsSet(true);
+        } catch (InvalidPalOperation ouch) {
+          result.ouch = ouch;
+        }
+        return result;
+      }
+    }
+
+    public static class pal_port_add_all<I extends Iface> extends org.apache.thrift.ProcessFunction<I, pal_port_add_all_args> {
+      public pal_port_add_all() {
+        super("pal_port_add_all");
+      }
+
+      public pal_port_add_all_args getEmptyArgsInstance() {
+        return new pal_port_add_all_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      @Override
+      protected boolean handleRuntimeExceptions() {
+        return false;
+      }
+
+      public pal_port_add_all_result getResult(I iface, pal_port_add_all_args args) throws org.apache.thrift.TException {
+        pal_port_add_all_result result = new pal_port_add_all_result();
+        try {
+          result.success = iface.pal_port_add_all(args.device, args.ps, args.fec);
+          result.setSuccessIsSet(true);
+        } catch (InvalidPalOperation ouch) {
+          result.ouch = ouch;
+        }
+        return result;
+      }
+    }
+
+    public static class pal_port_del<I extends Iface> extends org.apache.thrift.ProcessFunction<I, pal_port_del_args> {
+      public pal_port_del() {
+        super("pal_port_del");
+      }
+
+      public pal_port_del_args getEmptyArgsInstance() {
+        return new pal_port_del_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      @Override
+      protected boolean handleRuntimeExceptions() {
+        return false;
+      }
+
+      public pal_port_del_result getResult(I iface, pal_port_del_args args) throws org.apache.thrift.TException {
+        pal_port_del_result result = new pal_port_del_result();
+        try {
+          result.success = iface.pal_port_del(args.device, args.dev_port);
+          result.setSuccessIsSet(true);
+        } catch (InvalidPalOperation ouch) {
+          result.ouch = ouch;
+        }
+        return result;
+      }
+    }
+
+    public static class pal_port_del_all<I extends Iface> extends org.apache.thrift.ProcessFunction<I, pal_port_del_all_args> {
+      public pal_port_del_all() {
+        super("pal_port_del_all");
+      }
+
+      public pal_port_del_all_args getEmptyArgsInstance() {
+        return new pal_port_del_all_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      @Override
+      protected boolean handleRuntimeExceptions() {
+        return false;
+      }
+
+      public pal_port_del_all_result getResult(I iface, pal_port_del_all_args args) throws org.apache.thrift.TException {
+        pal_port_del_all_result result = new pal_port_del_all_result();
+        try {
+          result.success = iface.pal_port_del_all(args.device);
+          result.setSuccessIsSet(true);
+        } catch (InvalidPalOperation ouch) {
+          result.ouch = ouch;
+        }
+        return result;
+      }
+    }
+
+    public static class pal_port_enable<I extends Iface> extends org.apache.thrift.ProcessFunction<I, pal_port_enable_args> {
+      public pal_port_enable() {
+        super("pal_port_enable");
+      }
+
+      public pal_port_enable_args getEmptyArgsInstance() {
+        return new pal_port_enable_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      @Override
+      protected boolean handleRuntimeExceptions() {
+        return false;
+      }
+
+      public pal_port_enable_result getResult(I iface, pal_port_enable_args args) throws org.apache.thrift.TException {
+        pal_port_enable_result result = new pal_port_enable_result();
+        try {
+          result.success = iface.pal_port_enable(args.device, args.dev_port);
+          result.setSuccessIsSet(true);
+        } catch (InvalidPalOperation ouch) {
+          result.ouch = ouch;
+        }
+        return result;
+      }
+    }
+
+    public static class pal_port_enable_all<I extends Iface> extends org.apache.thrift.ProcessFunction<I, pal_port_enable_all_args> {
+      public pal_port_enable_all() {
+        super("pal_port_enable_all");
+      }
+
+      public pal_port_enable_all_args getEmptyArgsInstance() {
+        return new pal_port_enable_all_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      @Override
+      protected boolean handleRuntimeExceptions() {
+        return false;
+      }
+
+      public pal_port_enable_all_result getResult(I iface, pal_port_enable_all_args args) throws org.apache.thrift.TException {
+        pal_port_enable_all_result result = new pal_port_enable_all_result();
+        try {
+          result.success = iface.pal_port_enable_all(args.device);
+          result.setSuccessIsSet(true);
+        } catch (InvalidPalOperation ouch) {
+          result.ouch = ouch;
+        }
+        return result;
+      }
+    }
+
+    public static class pal_port_dis<I extends Iface> extends org.apache.thrift.ProcessFunction<I, pal_port_dis_args> {
+      public pal_port_dis() {
+        super("pal_port_dis");
+      }
+
+      public pal_port_dis_args getEmptyArgsInstance() {
+        return new pal_port_dis_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      @Override
+      protected boolean handleRuntimeExceptions() {
+        return false;
+      }
+
+      public pal_port_dis_result getResult(I iface, pal_port_dis_args args) throws org.apache.thrift.TException {
+        pal_port_dis_result result = new pal_port_dis_result();
+        try {
+          result.success = iface.pal_port_dis(args.device, args.dev_port);
+          result.setSuccessIsSet(true);
+        } catch (InvalidPalOperation ouch) {
+          result.ouch = ouch;
+        }
+        return result;
+      }
+    }
+
+    public static class pal_port_oper_status_get<I extends Iface> extends org.apache.thrift.ProcessFunction<I, pal_port_oper_status_get_args> {
+      public pal_port_oper_status_get() {
+        super("pal_port_oper_status_get");
+      }
+
+      public pal_port_oper_status_get_args getEmptyArgsInstance() {
+        return new pal_port_oper_status_get_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      @Override
+      protected boolean handleRuntimeExceptions() {
+        return false;
+      }
+
+      public pal_port_oper_status_get_result getResult(I iface, pal_port_oper_status_get_args args) throws org.apache.thrift.TException {
+        pal_port_oper_status_get_result result = new pal_port_oper_status_get_result();
+        try {
+          result.success = iface.pal_port_oper_status_get(args.device, args.dev_port);
+        } catch (InvalidPalOperation ouch) {
+          result.ouch = ouch;
+        }
+        return result;
+      }
+    }
+
+    public static class pal_port_is_valid<I extends Iface> extends org.apache.thrift.ProcessFunction<I, pal_port_is_valid_args> {
+      public pal_port_is_valid() {
+        super("pal_port_is_valid");
+      }
+
+      public pal_port_is_valid_args getEmptyArgsInstance() {
+        return new pal_port_is_valid_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      @Override
+      protected boolean handleRuntimeExceptions() {
+        return false;
+      }
+
+      public pal_port_is_valid_result getResult(I iface, pal_port_is_valid_args args) throws org.apache.thrift.TException {
+        pal_port_is_valid_result result = new pal_port_is_valid_result();
+        try {
+          result.success = iface.pal_port_is_valid(args.device, args.dev_port);
+          result.setSuccessIsSet(true);
+        } catch (InvalidPalOperation ouch) {
+          result.ouch = ouch;
+        }
+        return result;
+      }
+    }
+
+    public static class pal_port_an_set<I extends Iface> extends org.apache.thrift.ProcessFunction<I, pal_port_an_set_args> {
+      public pal_port_an_set() {
+        super("pal_port_an_set");
+      }
+
+      public pal_port_an_set_args getEmptyArgsInstance() {
+        return new pal_port_an_set_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      @Override
+      protected boolean handleRuntimeExceptions() {
+        return false;
+      }
+
+      public pal_port_an_set_result getResult(I iface, pal_port_an_set_args args) throws org.apache.thrift.TException {
+        pal_port_an_set_result result = new pal_port_an_set_result();
+        try {
+          result.success = iface.pal_port_an_set(args.device, args.dev_port, args.an);
+          result.setSuccessIsSet(true);
+        } catch (InvalidPalOperation ouch) {
+          result.ouch = ouch;
+        }
+        return result;
+      }
+    }
+
+    public static class pal_port_an_set_all<I extends Iface> extends org.apache.thrift.ProcessFunction<I, pal_port_an_set_all_args> {
+      public pal_port_an_set_all() {
+        super("pal_port_an_set_all");
+      }
+
+      public pal_port_an_set_all_args getEmptyArgsInstance() {
+        return new pal_port_an_set_all_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      @Override
+      protected boolean handleRuntimeExceptions() {
+        return false;
+      }
+
+      public pal_port_an_set_all_result getResult(I iface, pal_port_an_set_all_args args) throws org.apache.thrift.TException {
+        pal_port_an_set_all_result result = new pal_port_an_set_all_result();
+        try {
+          result.success = iface.pal_port_an_set_all(args.device, args.an);
+          result.setSuccessIsSet(true);
+        } catch (InvalidPalOperation ouch) {
+          result.ouch = ouch;
+        }
+        return result;
+      }
+    }
+
+    public static class pal_port_loopback_mode_set<I extends Iface> extends org.apache.thrift.ProcessFunction<I, pal_port_loopback_mode_set_args> {
+      public pal_port_loopback_mode_set() {
+        super("pal_port_loopback_mode_set");
+      }
+
+      public pal_port_loopback_mode_set_args getEmptyArgsInstance() {
+        return new pal_port_loopback_mode_set_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      @Override
+      protected boolean handleRuntimeExceptions() {
+        return false;
+      }
+
+      public pal_port_loopback_mode_set_result getResult(I iface, pal_port_loopback_mode_set_args args) throws org.apache.thrift.TException {
+        pal_port_loopback_mode_set_result result = new pal_port_loopback_mode_set_result();
+        try {
+          result.success = iface.pal_port_loopback_mode_set(args.dev, args.dev_port, args.mode);
+          result.setSuccessIsSet(true);
+        } catch (InvalidPalOperation ouch) {
+          result.ouch = ouch;
+        }
+        return result;
+      }
+    }
+
+    public static class pal_port_front_panel_port_to_dev_port_get<I extends Iface> extends org.apache.thrift.ProcessFunction<I, pal_port_front_panel_port_to_dev_port_get_args> {
+      public pal_port_front_panel_port_to_dev_port_get() {
+        super("pal_port_front_panel_port_to_dev_port_get");
+      }
+
+      public pal_port_front_panel_port_to_dev_port_get_args getEmptyArgsInstance() {
+        return new pal_port_front_panel_port_to_dev_port_get_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      @Override
+      protected boolean handleRuntimeExceptions() {
+        return false;
+      }
+
+      public pal_port_front_panel_port_to_dev_port_get_result getResult(I iface, pal_port_front_panel_port_to_dev_port_get_args args) throws org.apache.thrift.TException {
+        pal_port_front_panel_port_to_dev_port_get_result result = new pal_port_front_panel_port_to_dev_port_get_result();
+        try {
+          result.success = iface.pal_port_front_panel_port_to_dev_port_get(args.dev, args.front_port, args.front_chnl);
+          result.setSuccessIsSet(true);
+        } catch (InvalidPalOperation ouch) {
+          result.ouch = ouch;
+        }
+        return result;
+      }
+    }
+
+  }
+
+  public static class AsyncProcessor<I extends AsyncIface> extends org.apache.thrift.TBaseAsyncProcessor<I> {
+    private static final org.slf4j.Logger _LOGGER = org.slf4j.LoggerFactory.getLogger(AsyncProcessor.class.getName());
+    public AsyncProcessor(I iface) {
+      super(iface, getProcessMap(new java.util.HashMap<String, org.apache.thrift.AsyncProcessFunction<I, ? extends org.apache.thrift.TBase, ?>>()));
+    }
+
+    protected AsyncProcessor(I iface, java.util.Map<String,  org.apache.thrift.AsyncProcessFunction<I, ? extends  org.apache.thrift.TBase, ?>> processMap) {
+      super(iface, getProcessMap(processMap));
+    }
+
+    private static <I extends AsyncIface> java.util.Map<String,  org.apache.thrift.AsyncProcessFunction<I, ? extends  org.apache.thrift.TBase,?>> getProcessMap(java.util.Map<String,  org.apache.thrift.AsyncProcessFunction<I, ? extends  org.apache.thrift.TBase, ?>> processMap) {
+      processMap.put("pal_port_add", new pal_port_add());
+      processMap.put("pal_port_add_all", new pal_port_add_all());
+      processMap.put("pal_port_del", new pal_port_del());
+      processMap.put("pal_port_del_all", new pal_port_del_all());
+      processMap.put("pal_port_enable", new pal_port_enable());
+      processMap.put("pal_port_enable_all", new pal_port_enable_all());
+      processMap.put("pal_port_dis", new pal_port_dis());
+      processMap.put("pal_port_oper_status_get", new pal_port_oper_status_get());
+      processMap.put("pal_port_is_valid", new pal_port_is_valid());
+      processMap.put("pal_port_an_set", new pal_port_an_set());
+      processMap.put("pal_port_an_set_all", new pal_port_an_set_all());
+      processMap.put("pal_port_loopback_mode_set", new pal_port_loopback_mode_set());
+      processMap.put("pal_port_front_panel_port_to_dev_port_get", new pal_port_front_panel_port_to_dev_port_get());
+      return processMap;
+    }
+
+    public static class pal_port_add<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, pal_port_add_args, Integer> {
+      public pal_port_add() {
+        super("pal_port_add");
+      }
+
+      public pal_port_add_args getEmptyArgsInstance() {
+        return new pal_port_add_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<Integer> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new org.apache.thrift.async.AsyncMethodCallback<Integer>() {
+          public void onComplete(Integer o) {
+            pal_port_add_result result = new pal_port_add_result();
+            result.success = o;
+            result.setSuccessIsSet(true);
+            try {
+              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+            } catch (org.apache.thrift.transport.TTransportException e) {
+              _LOGGER.error("TTransportException writing to internal frame buffer", e);
+              fb.close();
+            } catch (Exception e) {
+              _LOGGER.error("Exception writing to internal frame buffer", e);
+              onError(e);
+            }
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TSerializable msg;
+            pal_port_add_result result = new pal_port_add_result();
+            if (e instanceof InvalidPalOperation) {
+              result.ouch = (InvalidPalOperation) e;
+              result.setOuchIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+              _LOGGER.error("TTransportException inside handler", e);
+              fb.close();
+              return;
+            } else if (e instanceof org.apache.thrift.TApplicationException) {
+              _LOGGER.error("TApplicationException inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TApplicationException)e;
+            } else {
+              _LOGGER.error("Exception inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+            } catch (Exception ex) {
+              _LOGGER.error("Exception writing to internal frame buffer", ex);
+              fb.close();
+            }
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, pal_port_add_args args, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException {
+        iface.pal_port_add(args.device, args.dev_port, args.ps, args.fec,resultHandler);
+      }
+    }
+
+    public static class pal_port_add_all<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, pal_port_add_all_args, Integer> {
+      public pal_port_add_all() {
+        super("pal_port_add_all");
+      }
+
+      public pal_port_add_all_args getEmptyArgsInstance() {
+        return new pal_port_add_all_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<Integer> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new org.apache.thrift.async.AsyncMethodCallback<Integer>() {
+          public void onComplete(Integer o) {
+            pal_port_add_all_result result = new pal_port_add_all_result();
+            result.success = o;
+            result.setSuccessIsSet(true);
+            try {
+              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+            } catch (org.apache.thrift.transport.TTransportException e) {
+              _LOGGER.error("TTransportException writing to internal frame buffer", e);
+              fb.close();
+            } catch (Exception e) {
+              _LOGGER.error("Exception writing to internal frame buffer", e);
+              onError(e);
+            }
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TSerializable msg;
+            pal_port_add_all_result result = new pal_port_add_all_result();
+            if (e instanceof InvalidPalOperation) {
+              result.ouch = (InvalidPalOperation) e;
+              result.setOuchIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+              _LOGGER.error("TTransportException inside handler", e);
+              fb.close();
+              return;
+            } else if (e instanceof org.apache.thrift.TApplicationException) {
+              _LOGGER.error("TApplicationException inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TApplicationException)e;
+            } else {
+              _LOGGER.error("Exception inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+            } catch (Exception ex) {
+              _LOGGER.error("Exception writing to internal frame buffer", ex);
+              fb.close();
+            }
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, pal_port_add_all_args args, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException {
+        iface.pal_port_add_all(args.device, args.ps, args.fec,resultHandler);
+      }
+    }
+
+    public static class pal_port_del<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, pal_port_del_args, Integer> {
+      public pal_port_del() {
+        super("pal_port_del");
+      }
+
+      public pal_port_del_args getEmptyArgsInstance() {
+        return new pal_port_del_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<Integer> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new org.apache.thrift.async.AsyncMethodCallback<Integer>() {
+          public void onComplete(Integer o) {
+            pal_port_del_result result = new pal_port_del_result();
+            result.success = o;
+            result.setSuccessIsSet(true);
+            try {
+              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+            } catch (org.apache.thrift.transport.TTransportException e) {
+              _LOGGER.error("TTransportException writing to internal frame buffer", e);
+              fb.close();
+            } catch (Exception e) {
+              _LOGGER.error("Exception writing to internal frame buffer", e);
+              onError(e);
+            }
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TSerializable msg;
+            pal_port_del_result result = new pal_port_del_result();
+            if (e instanceof InvalidPalOperation) {
+              result.ouch = (InvalidPalOperation) e;
+              result.setOuchIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+              _LOGGER.error("TTransportException inside handler", e);
+              fb.close();
+              return;
+            } else if (e instanceof org.apache.thrift.TApplicationException) {
+              _LOGGER.error("TApplicationException inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TApplicationException)e;
+            } else {
+              _LOGGER.error("Exception inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+            } catch (Exception ex) {
+              _LOGGER.error("Exception writing to internal frame buffer", ex);
+              fb.close();
+            }
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, pal_port_del_args args, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException {
+        iface.pal_port_del(args.device, args.dev_port,resultHandler);
+      }
+    }
+
+    public static class pal_port_del_all<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, pal_port_del_all_args, Integer> {
+      public pal_port_del_all() {
+        super("pal_port_del_all");
+      }
+
+      public pal_port_del_all_args getEmptyArgsInstance() {
+        return new pal_port_del_all_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<Integer> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new org.apache.thrift.async.AsyncMethodCallback<Integer>() {
+          public void onComplete(Integer o) {
+            pal_port_del_all_result result = new pal_port_del_all_result();
+            result.success = o;
+            result.setSuccessIsSet(true);
+            try {
+              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+            } catch (org.apache.thrift.transport.TTransportException e) {
+              _LOGGER.error("TTransportException writing to internal frame buffer", e);
+              fb.close();
+            } catch (Exception e) {
+              _LOGGER.error("Exception writing to internal frame buffer", e);
+              onError(e);
+            }
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TSerializable msg;
+            pal_port_del_all_result result = new pal_port_del_all_result();
+            if (e instanceof InvalidPalOperation) {
+              result.ouch = (InvalidPalOperation) e;
+              result.setOuchIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+              _LOGGER.error("TTransportException inside handler", e);
+              fb.close();
+              return;
+            } else if (e instanceof org.apache.thrift.TApplicationException) {
+              _LOGGER.error("TApplicationException inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TApplicationException)e;
+            } else {
+              _LOGGER.error("Exception inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+            } catch (Exception ex) {
+              _LOGGER.error("Exception writing to internal frame buffer", ex);
+              fb.close();
+            }
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, pal_port_del_all_args args, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException {
+        iface.pal_port_del_all(args.device,resultHandler);
+      }
+    }
+
+    public static class pal_port_enable<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, pal_port_enable_args, Integer> {
+      public pal_port_enable() {
+        super("pal_port_enable");
+      }
+
+      public pal_port_enable_args getEmptyArgsInstance() {
+        return new pal_port_enable_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<Integer> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new org.apache.thrift.async.AsyncMethodCallback<Integer>() {
+          public void onComplete(Integer o) {
+            pal_port_enable_result result = new pal_port_enable_result();
+            result.success = o;
+            result.setSuccessIsSet(true);
+            try {
+              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+            } catch (org.apache.thrift.transport.TTransportException e) {
+              _LOGGER.error("TTransportException writing to internal frame buffer", e);
+              fb.close();
+            } catch (Exception e) {
+              _LOGGER.error("Exception writing to internal frame buffer", e);
+              onError(e);
+            }
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TSerializable msg;
+            pal_port_enable_result result = new pal_port_enable_result();
+            if (e instanceof InvalidPalOperation) {
+              result.ouch = (InvalidPalOperation) e;
+              result.setOuchIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+              _LOGGER.error("TTransportException inside handler", e);
+              fb.close();
+              return;
+            } else if (e instanceof org.apache.thrift.TApplicationException) {
+              _LOGGER.error("TApplicationException inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TApplicationException)e;
+            } else {
+              _LOGGER.error("Exception inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+            } catch (Exception ex) {
+              _LOGGER.error("Exception writing to internal frame buffer", ex);
+              fb.close();
+            }
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, pal_port_enable_args args, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException {
+        iface.pal_port_enable(args.device, args.dev_port,resultHandler);
+      }
+    }
+
+    public static class pal_port_enable_all<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, pal_port_enable_all_args, Integer> {
+      public pal_port_enable_all() {
+        super("pal_port_enable_all");
+      }
+
+      public pal_port_enable_all_args getEmptyArgsInstance() {
+        return new pal_port_enable_all_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<Integer> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new org.apache.thrift.async.AsyncMethodCallback<Integer>() {
+          public void onComplete(Integer o) {
+            pal_port_enable_all_result result = new pal_port_enable_all_result();
+            result.success = o;
+            result.setSuccessIsSet(true);
+            try {
+              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+            } catch (org.apache.thrift.transport.TTransportException e) {
+              _LOGGER.error("TTransportException writing to internal frame buffer", e);
+              fb.close();
+            } catch (Exception e) {
+              _LOGGER.error("Exception writing to internal frame buffer", e);
+              onError(e);
+            }
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TSerializable msg;
+            pal_port_enable_all_result result = new pal_port_enable_all_result();
+            if (e instanceof InvalidPalOperation) {
+              result.ouch = (InvalidPalOperation) e;
+              result.setOuchIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+              _LOGGER.error("TTransportException inside handler", e);
+              fb.close();
+              return;
+            } else if (e instanceof org.apache.thrift.TApplicationException) {
+              _LOGGER.error("TApplicationException inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TApplicationException)e;
+            } else {
+              _LOGGER.error("Exception inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+            } catch (Exception ex) {
+              _LOGGER.error("Exception writing to internal frame buffer", ex);
+              fb.close();
+            }
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, pal_port_enable_all_args args, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException {
+        iface.pal_port_enable_all(args.device,resultHandler);
+      }
+    }
+
+    public static class pal_port_dis<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, pal_port_dis_args, Integer> {
+      public pal_port_dis() {
+        super("pal_port_dis");
+      }
+
+      public pal_port_dis_args getEmptyArgsInstance() {
+        return new pal_port_dis_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<Integer> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new org.apache.thrift.async.AsyncMethodCallback<Integer>() {
+          public void onComplete(Integer o) {
+            pal_port_dis_result result = new pal_port_dis_result();
+            result.success = o;
+            result.setSuccessIsSet(true);
+            try {
+              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+            } catch (org.apache.thrift.transport.TTransportException e) {
+              _LOGGER.error("TTransportException writing to internal frame buffer", e);
+              fb.close();
+            } catch (Exception e) {
+              _LOGGER.error("Exception writing to internal frame buffer", e);
+              onError(e);
+            }
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TSerializable msg;
+            pal_port_dis_result result = new pal_port_dis_result();
+            if (e instanceof InvalidPalOperation) {
+              result.ouch = (InvalidPalOperation) e;
+              result.setOuchIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+              _LOGGER.error("TTransportException inside handler", e);
+              fb.close();
+              return;
+            } else if (e instanceof org.apache.thrift.TApplicationException) {
+              _LOGGER.error("TApplicationException inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TApplicationException)e;
+            } else {
+              _LOGGER.error("Exception inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+            } catch (Exception ex) {
+              _LOGGER.error("Exception writing to internal frame buffer", ex);
+              fb.close();
+            }
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, pal_port_dis_args args, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException {
+        iface.pal_port_dis(args.device, args.dev_port,resultHandler);
+      }
+    }
+
+    public static class pal_port_oper_status_get<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, pal_port_oper_status_get_args, pal_oper_status_t> {
+      public pal_port_oper_status_get() {
+        super("pal_port_oper_status_get");
+      }
+
+      public pal_port_oper_status_get_args getEmptyArgsInstance() {
+        return new pal_port_oper_status_get_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<pal_oper_status_t> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new org.apache.thrift.async.AsyncMethodCallback<pal_oper_status_t>() { 
+          public void onComplete(pal_oper_status_t o) {
+            pal_port_oper_status_get_result result = new pal_port_oper_status_get_result();
+            result.success = o;
+            try {
+              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+            } catch (org.apache.thrift.transport.TTransportException e) {
+              _LOGGER.error("TTransportException writing to internal frame buffer", e);
+              fb.close();
+            } catch (Exception e) {
+              _LOGGER.error("Exception writing to internal frame buffer", e);
+              onError(e);
+            }
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TSerializable msg;
+            pal_port_oper_status_get_result result = new pal_port_oper_status_get_result();
+            if (e instanceof InvalidPalOperation) {
+              result.ouch = (InvalidPalOperation) e;
+              result.setOuchIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+              _LOGGER.error("TTransportException inside handler", e);
+              fb.close();
+              return;
+            } else if (e instanceof org.apache.thrift.TApplicationException) {
+              _LOGGER.error("TApplicationException inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TApplicationException)e;
+            } else {
+              _LOGGER.error("Exception inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+            } catch (Exception ex) {
+              _LOGGER.error("Exception writing to internal frame buffer", ex);
+              fb.close();
+            }
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, pal_port_oper_status_get_args args, org.apache.thrift.async.AsyncMethodCallback<pal_oper_status_t> resultHandler) throws org.apache.thrift.TException {
+        iface.pal_port_oper_status_get(args.device, args.dev_port,resultHandler);
+      }
+    }
+
+    public static class pal_port_is_valid<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, pal_port_is_valid_args, Boolean> {
+      public pal_port_is_valid() {
+        super("pal_port_is_valid");
+      }
+
+      public pal_port_is_valid_args getEmptyArgsInstance() {
+        return new pal_port_is_valid_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new org.apache.thrift.async.AsyncMethodCallback<Boolean>() {
+          public void onComplete(Boolean o) {
+            pal_port_is_valid_result result = new pal_port_is_valid_result();
+            result.success = o;
+            result.setSuccessIsSet(true);
+            try {
+              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+            } catch (org.apache.thrift.transport.TTransportException e) {
+              _LOGGER.error("TTransportException writing to internal frame buffer", e);
+              fb.close();
+            } catch (Exception e) {
+              _LOGGER.error("Exception writing to internal frame buffer", e);
+              onError(e);
+            }
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TSerializable msg;
+            pal_port_is_valid_result result = new pal_port_is_valid_result();
+            if (e instanceof InvalidPalOperation) {
+              result.ouch = (InvalidPalOperation) e;
+              result.setOuchIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+              _LOGGER.error("TTransportException inside handler", e);
+              fb.close();
+              return;
+            } else if (e instanceof org.apache.thrift.TApplicationException) {
+              _LOGGER.error("TApplicationException inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TApplicationException)e;
+            } else {
+              _LOGGER.error("Exception inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+            } catch (Exception ex) {
+              _LOGGER.error("Exception writing to internal frame buffer", ex);
+              fb.close();
+            }
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, pal_port_is_valid_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.pal_port_is_valid(args.device, args.dev_port,resultHandler);
+      }
+    }
+
+    public static class pal_port_an_set<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, pal_port_an_set_args, Integer> {
+      public pal_port_an_set() {
+        super("pal_port_an_set");
+      }
+
+      public pal_port_an_set_args getEmptyArgsInstance() {
+        return new pal_port_an_set_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<Integer> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new org.apache.thrift.async.AsyncMethodCallback<Integer>() {
+          public void onComplete(Integer o) {
+            pal_port_an_set_result result = new pal_port_an_set_result();
+            result.success = o;
+            result.setSuccessIsSet(true);
+            try {
+              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+            } catch (org.apache.thrift.transport.TTransportException e) {
+              _LOGGER.error("TTransportException writing to internal frame buffer", e);
+              fb.close();
+            } catch (Exception e) {
+              _LOGGER.error("Exception writing to internal frame buffer", e);
+              onError(e);
+            }
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TSerializable msg;
+            pal_port_an_set_result result = new pal_port_an_set_result();
+            if (e instanceof InvalidPalOperation) {
+              result.ouch = (InvalidPalOperation) e;
+              result.setOuchIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+              _LOGGER.error("TTransportException inside handler", e);
+              fb.close();
+              return;
+            } else if (e instanceof org.apache.thrift.TApplicationException) {
+              _LOGGER.error("TApplicationException inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TApplicationException)e;
+            } else {
+              _LOGGER.error("Exception inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+            } catch (Exception ex) {
+              _LOGGER.error("Exception writing to internal frame buffer", ex);
+              fb.close();
+            }
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, pal_port_an_set_args args, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException {
+        iface.pal_port_an_set(args.device, args.dev_port, args.an,resultHandler);
+      }
+    }
+
+    public static class pal_port_an_set_all<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, pal_port_an_set_all_args, Integer> {
+      public pal_port_an_set_all() {
+        super("pal_port_an_set_all");
+      }
+
+      public pal_port_an_set_all_args getEmptyArgsInstance() {
+        return new pal_port_an_set_all_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<Integer> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new org.apache.thrift.async.AsyncMethodCallback<Integer>() {
+          public void onComplete(Integer o) {
+            pal_port_an_set_all_result result = new pal_port_an_set_all_result();
+            result.success = o;
+            result.setSuccessIsSet(true);
+            try {
+              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+            } catch (org.apache.thrift.transport.TTransportException e) {
+              _LOGGER.error("TTransportException writing to internal frame buffer", e);
+              fb.close();
+            } catch (Exception e) {
+              _LOGGER.error("Exception writing to internal frame buffer", e);
+              onError(e);
+            }
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TSerializable msg;
+            pal_port_an_set_all_result result = new pal_port_an_set_all_result();
+            if (e instanceof InvalidPalOperation) {
+              result.ouch = (InvalidPalOperation) e;
+              result.setOuchIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+              _LOGGER.error("TTransportException inside handler", e);
+              fb.close();
+              return;
+            } else if (e instanceof org.apache.thrift.TApplicationException) {
+              _LOGGER.error("TApplicationException inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TApplicationException)e;
+            } else {
+              _LOGGER.error("Exception inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+            } catch (Exception ex) {
+              _LOGGER.error("Exception writing to internal frame buffer", ex);
+              fb.close();
+            }
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, pal_port_an_set_all_args args, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException {
+        iface.pal_port_an_set_all(args.device, args.an,resultHandler);
+      }
+    }
+
+    public static class pal_port_loopback_mode_set<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, pal_port_loopback_mode_set_args, Integer> {
+      public pal_port_loopback_mode_set() {
+        super("pal_port_loopback_mode_set");
+      }
+
+      public pal_port_loopback_mode_set_args getEmptyArgsInstance() {
+        return new pal_port_loopback_mode_set_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<Integer> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new org.apache.thrift.async.AsyncMethodCallback<Integer>() {
+          public void onComplete(Integer o) {
+            pal_port_loopback_mode_set_result result = new pal_port_loopback_mode_set_result();
+            result.success = o;
+            result.setSuccessIsSet(true);
+            try {
+              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+            } catch (org.apache.thrift.transport.TTransportException e) {
+              _LOGGER.error("TTransportException writing to internal frame buffer", e);
+              fb.close();
+            } catch (Exception e) {
+              _LOGGER.error("Exception writing to internal frame buffer", e);
+              onError(e);
+            }
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TSerializable msg;
+            pal_port_loopback_mode_set_result result = new pal_port_loopback_mode_set_result();
+            if (e instanceof InvalidPalOperation) {
+              result.ouch = (InvalidPalOperation) e;
+              result.setOuchIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+              _LOGGER.error("TTransportException inside handler", e);
+              fb.close();
+              return;
+            } else if (e instanceof org.apache.thrift.TApplicationException) {
+              _LOGGER.error("TApplicationException inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TApplicationException)e;
+            } else {
+              _LOGGER.error("Exception inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+            } catch (Exception ex) {
+              _LOGGER.error("Exception writing to internal frame buffer", ex);
+              fb.close();
+            }
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, pal_port_loopback_mode_set_args args, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException {
+        iface.pal_port_loopback_mode_set(args.dev, args.dev_port, args.mode,resultHandler);
+      }
+    }
+
+    public static class pal_port_front_panel_port_to_dev_port_get<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, pal_port_front_panel_port_to_dev_port_get_args, Integer> {
+      public pal_port_front_panel_port_to_dev_port_get() {
+        super("pal_port_front_panel_port_to_dev_port_get");
+      }
+
+      public pal_port_front_panel_port_to_dev_port_get_args getEmptyArgsInstance() {
+        return new pal_port_front_panel_port_to_dev_port_get_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<Integer> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new org.apache.thrift.async.AsyncMethodCallback<Integer>() {
+          public void onComplete(Integer o) {
+            pal_port_front_panel_port_to_dev_port_get_result result = new pal_port_front_panel_port_to_dev_port_get_result();
+            result.success = o;
+            result.setSuccessIsSet(true);
+            try {
+              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+            } catch (org.apache.thrift.transport.TTransportException e) {
+              _LOGGER.error("TTransportException writing to internal frame buffer", e);
+              fb.close();
+            } catch (Exception e) {
+              _LOGGER.error("Exception writing to internal frame buffer", e);
+              onError(e);
+            }
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TSerializable msg;
+            pal_port_front_panel_port_to_dev_port_get_result result = new pal_port_front_panel_port_to_dev_port_get_result();
+            if (e instanceof InvalidPalOperation) {
+              result.ouch = (InvalidPalOperation) e;
+              result.setOuchIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+              _LOGGER.error("TTransportException inside handler", e);
+              fb.close();
+              return;
+            } else if (e instanceof org.apache.thrift.TApplicationException) {
+              _LOGGER.error("TApplicationException inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TApplicationException)e;
+            } else {
+              _LOGGER.error("Exception inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+            } catch (Exception ex) {
+              _LOGGER.error("Exception writing to internal frame buffer", ex);
+              fb.close();
+            }
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, pal_port_front_panel_port_to_dev_port_get_args args, org.apache.thrift.async.AsyncMethodCallback<Integer> resultHandler) throws org.apache.thrift.TException {
+        iface.pal_port_front_panel_port_to_dev_port_get(args.dev, args.front_port, args.front_chnl,resultHandler);
+      }
+    }
+
+  }
+
+  public static class pal_port_add_args implements org.apache.thrift.TBase<pal_port_add_args, pal_port_add_args._Fields>, java.io.Serializable, Cloneable, Comparable<pal_port_add_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pal_port_add_args");
+
+    private static final org.apache.thrift.protocol.TField DEVICE_FIELD_DESC = new org.apache.thrift.protocol.TField("device", org.apache.thrift.protocol.TType.BYTE, (short)1);
+    private static final org.apache.thrift.protocol.TField DEV_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("dev_port", org.apache.thrift.protocol.TType.I32, (short)2);
+    private static final org.apache.thrift.protocol.TField PS_FIELD_DESC = new org.apache.thrift.protocol.TField("ps", org.apache.thrift.protocol.TType.I32, (short)3);
+    private static final org.apache.thrift.protocol.TField FEC_FIELD_DESC = new org.apache.thrift.protocol.TField("fec", org.apache.thrift.protocol.TType.I32, (short)4);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new pal_port_add_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pal_port_add_argsTupleSchemeFactory();
+
+    public byte device; // required
+    public int dev_port; // required
+    /**
+     * 
+     * @see pal_port_speed_t
+     */
+    public pal_port_speed_t ps; // required
+    /**
+     * 
+     * @see pal_fec_type_t
+     */
+    public pal_fec_type_t fec; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      DEVICE((short)1, "device"),
+      DEV_PORT((short)2, "dev_port"),
+      /**
+       * 
+       * @see pal_port_speed_t
+       */
+      PS((short)3, "ps"),
+      /**
+       * 
+       * @see pal_fec_type_t
+       */
+      FEC((short)4, "fec");
+
+      private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // DEVICE
+            return DEVICE;
+          case 2: // DEV_PORT
+            return DEV_PORT;
+          case 3: // PS
+            return PS;
+          case 4: // FEC
+            return FEC;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __DEVICE_ISSET_ID = 0;
+    private static final int __DEV_PORT_ISSET_ID = 1;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.DEVICE, new org.apache.thrift.meta_data.FieldMetaData("device", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BYTE          , "pal_device_t")));
+      tmpMap.put(_Fields.DEV_PORT, new org.apache.thrift.meta_data.FieldMetaData("dev_port", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32          , "pal_dev_port_t")));
+      tmpMap.put(_Fields.PS, new org.apache.thrift.meta_data.FieldMetaData("ps", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, pal_port_speed_t.class)));
+      tmpMap.put(_Fields.FEC, new org.apache.thrift.meta_data.FieldMetaData("fec", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, pal_fec_type_t.class)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pal_port_add_args.class, metaDataMap);
+    }
+
+    public pal_port_add_args() {
+    }
+
+    public pal_port_add_args(
+      byte device,
+      int dev_port,
+      pal_port_speed_t ps,
+      pal_fec_type_t fec)
+    {
+      this();
+      this.device = device;
+      setDeviceIsSet(true);
+      this.dev_port = dev_port;
+      setDev_portIsSet(true);
+      this.ps = ps;
+      this.fec = fec;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public pal_port_add_args(pal_port_add_args other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.device = other.device;
+      this.dev_port = other.dev_port;
+      if (other.isSetPs()) {
+        this.ps = other.ps;
+      }
+      if (other.isSetFec()) {
+        this.fec = other.fec;
+      }
+    }
+
+    public pal_port_add_args deepCopy() {
+      return new pal_port_add_args(this);
+    }
+
+    @Override
+    public void clear() {
+      setDeviceIsSet(false);
+      this.device = 0;
+      setDev_portIsSet(false);
+      this.dev_port = 0;
+      this.ps = null;
+      this.fec = null;
+    }
+
+    public byte getDevice() {
+      return this.device;
+    }
+
+    public pal_port_add_args setDevice(byte device) {
+      this.device = device;
+      setDeviceIsSet(true);
+      return this;
+    }
+
+    public void unsetDevice() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DEVICE_ISSET_ID);
+    }
+
+    /** Returns true if field device is set (has been assigned a value) and false otherwise */
+    public boolean isSetDevice() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DEVICE_ISSET_ID);
+    }
+
+    public void setDeviceIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DEVICE_ISSET_ID, value);
+    }
+
+    public int getDev_port() {
+      return this.dev_port;
+    }
+
+    public pal_port_add_args setDev_port(int dev_port) {
+      this.dev_port = dev_port;
+      setDev_portIsSet(true);
+      return this;
+    }
+
+    public void unsetDev_port() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DEV_PORT_ISSET_ID);
+    }
+
+    /** Returns true if field dev_port is set (has been assigned a value) and false otherwise */
+    public boolean isSetDev_port() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DEV_PORT_ISSET_ID);
+    }
+
+    public void setDev_portIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DEV_PORT_ISSET_ID, value);
+    }
+
+    /**
+     * 
+     * @see pal_port_speed_t
+     */
+    public pal_port_speed_t getPs() {
+      return this.ps;
+    }
+
+    /**
+     * 
+     * @see pal_port_speed_t
+     */
+    public pal_port_add_args setPs(pal_port_speed_t ps) {
+      this.ps = ps;
+      return this;
+    }
+
+    public void unsetPs() {
+      this.ps = null;
+    }
+
+    /** Returns true if field ps is set (has been assigned a value) and false otherwise */
+    public boolean isSetPs() {
+      return this.ps != null;
+    }
+
+    public void setPsIsSet(boolean value) {
+      if (!value) {
+        this.ps = null;
+      }
+    }
+
+    /**
+     * 
+     * @see pal_fec_type_t
+     */
+    public pal_fec_type_t getFec() {
+      return this.fec;
+    }
+
+    /**
+     * 
+     * @see pal_fec_type_t
+     */
+    public pal_port_add_args setFec(pal_fec_type_t fec) {
+      this.fec = fec;
+      return this;
+    }
+
+    public void unsetFec() {
+      this.fec = null;
+    }
+
+    /** Returns true if field fec is set (has been assigned a value) and false otherwise */
+    public boolean isSetFec() {
+      return this.fec != null;
+    }
+
+    public void setFecIsSet(boolean value) {
+      if (!value) {
+        this.fec = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case DEVICE:
+        if (value == null) {
+          unsetDevice();
+        } else {
+          setDevice((Byte)value);
+        }
+        break;
+
+      case DEV_PORT:
+        if (value == null) {
+          unsetDev_port();
+        } else {
+          setDev_port((Integer)value);
+        }
+        break;
+
+      case PS:
+        if (value == null) {
+          unsetPs();
+        } else {
+          setPs((pal_port_speed_t)value);
+        }
+        break;
+
+      case FEC:
+        if (value == null) {
+          unsetFec();
+        } else {
+          setFec((pal_fec_type_t)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case DEVICE:
+        return getDevice();
+
+      case DEV_PORT:
+        return getDev_port();
+
+      case PS:
+        return getPs();
+
+      case FEC:
+        return getFec();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case DEVICE:
+        return isSetDevice();
+      case DEV_PORT:
+        return isSetDev_port();
+      case PS:
+        return isSetPs();
+      case FEC:
+        return isSetFec();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof pal_port_add_args)
+        return this.equals((pal_port_add_args)that);
+      return false;
+    }
+
+    public boolean equals(pal_port_add_args that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_device = true;
+      boolean that_present_device = true;
+      if (this_present_device || that_present_device) {
+        if (!(this_present_device && that_present_device))
+          return false;
+        if (this.device != that.device)
+          return false;
+      }
+
+      boolean this_present_dev_port = true;
+      boolean that_present_dev_port = true;
+      if (this_present_dev_port || that_present_dev_port) {
+        if (!(this_present_dev_port && that_present_dev_port))
+          return false;
+        if (this.dev_port != that.dev_port)
+          return false;
+      }
+
+      boolean this_present_ps = true && this.isSetPs();
+      boolean that_present_ps = true && that.isSetPs();
+      if (this_present_ps || that_present_ps) {
+        if (!(this_present_ps && that_present_ps))
+          return false;
+        if (!this.ps.equals(that.ps))
+          return false;
+      }
+
+      boolean this_present_fec = true && this.isSetFec();
+      boolean that_present_fec = true && that.isSetFec();
+      if (this_present_fec || that_present_fec) {
+        if (!(this_present_fec && that_present_fec))
+          return false;
+        if (!this.fec.equals(that.fec))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + (int) (device);
+
+      hashCode = hashCode * 8191 + dev_port;
+
+      hashCode = hashCode * 8191 + ((isSetPs()) ? 131071 : 524287);
+      if (isSetPs())
+        hashCode = hashCode * 8191 + ps.getValue();
+
+      hashCode = hashCode * 8191 + ((isSetFec()) ? 131071 : 524287);
+      if (isSetFec())
+        hashCode = hashCode * 8191 + fec.getValue();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(pal_port_add_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetDevice()).compareTo(other.isSetDevice());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetDevice()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.device, other.device);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetDev_port()).compareTo(other.isSetDev_port());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetDev_port()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dev_port, other.dev_port);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetPs()).compareTo(other.isSetPs());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetPs()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ps, other.ps);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetFec()).compareTo(other.isSetFec());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetFec()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fec, other.fec);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+    }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("pal_port_add_args(");
+      boolean first = true;
+
+      sb.append("device:");
+      sb.append(this.device);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("dev_port:");
+      sb.append(this.dev_port);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ps:");
+      if (this.ps == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ps);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("fec:");
+      if (this.fec == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.fec);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class pal_port_add_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_add_argsStandardScheme getScheme() {
+        return new pal_port_add_argsStandardScheme();
+      }
+    }
+
+    private static class pal_port_add_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<pal_port_add_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, pal_port_add_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // DEVICE
+              if (schemeField.type == org.apache.thrift.protocol.TType.BYTE) {
+                struct.device = iprot.readByte();
+                struct.setDeviceIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // DEV_PORT
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.dev_port = iprot.readI32();
+                struct.setDev_portIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 3: // PS
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.ps = pal_port_speed_t.findByValue(iprot.readI32());
+                struct.setPsIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 4: // FEC
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.fec = pal_fec_type_t.findByValue(iprot.readI32());
+                struct.setFecIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, pal_port_add_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        oprot.writeFieldBegin(DEVICE_FIELD_DESC);
+        oprot.writeByte(struct.device);
+        oprot.writeFieldEnd();
+        oprot.writeFieldBegin(DEV_PORT_FIELD_DESC);
+        oprot.writeI32(struct.dev_port);
+        oprot.writeFieldEnd();
+        if (struct.ps != null) {
+          oprot.writeFieldBegin(PS_FIELD_DESC);
+          oprot.writeI32(struct.ps.getValue());
+          oprot.writeFieldEnd();
+        }
+        if (struct.fec != null) {
+          oprot.writeFieldBegin(FEC_FIELD_DESC);
+          oprot.writeI32(struct.fec.getValue());
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class pal_port_add_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_add_argsTupleScheme getScheme() {
+        return new pal_port_add_argsTupleScheme();
+      }
+    }
+
+    private static class pal_port_add_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<pal_port_add_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, pal_port_add_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetDevice()) {
+          optionals.set(0);
+        }
+        if (struct.isSetDev_port()) {
+          optionals.set(1);
+        }
+        if (struct.isSetPs()) {
+          optionals.set(2);
+        }
+        if (struct.isSetFec()) {
+          optionals.set(3);
+        }
+        oprot.writeBitSet(optionals, 4);
+        if (struct.isSetDevice()) {
+          oprot.writeByte(struct.device);
+        }
+        if (struct.isSetDev_port()) {
+          oprot.writeI32(struct.dev_port);
+        }
+        if (struct.isSetPs()) {
+          oprot.writeI32(struct.ps.getValue());
+        }
+        if (struct.isSetFec()) {
+          oprot.writeI32(struct.fec.getValue());
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, pal_port_add_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(4);
+        if (incoming.get(0)) {
+          struct.device = iprot.readByte();
+          struct.setDeviceIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.dev_port = iprot.readI32();
+          struct.setDev_portIsSet(true);
+        }
+        if (incoming.get(2)) {
+          struct.ps = pal_port_speed_t.findByValue(iprot.readI32());
+          struct.setPsIsSet(true);
+        }
+        if (incoming.get(3)) {
+          struct.fec = pal_fec_type_t.findByValue(iprot.readI32());
+          struct.setFecIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class pal_port_add_result implements org.apache.thrift.TBase<pal_port_add_result, pal_port_add_result._Fields>, java.io.Serializable, Cloneable, Comparable<pal_port_add_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pal_port_add_result");
+
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.I32, (short)0);
+    private static final org.apache.thrift.protocol.TField OUCH_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new pal_port_add_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pal_port_add_resultTupleSchemeFactory();
+
+    public int success; // required
+    public InvalidPalOperation ouch; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      SUCCESS((short)0, "success"),
+      OUCH((short)1, "ouch");
+
+      private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
+          case 1: // OUCH
+            return OUCH;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __SUCCESS_ISSET_ID = 0;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32          , "pal_status_t")));
+      tmpMap.put(_Fields.OUCH, new org.apache.thrift.meta_data.FieldMetaData("ouch", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidPalOperation.class)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pal_port_add_result.class, metaDataMap);
+    }
+
+    public pal_port_add_result() {
+    }
+
+    public pal_port_add_result(
+      int success,
+      InvalidPalOperation ouch)
+    {
+      this();
+      this.success = success;
+      setSuccessIsSet(true);
+      this.ouch = ouch;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public pal_port_add_result(pal_port_add_result other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.success = other.success;
+      if (other.isSetOuch()) {
+        this.ouch = new InvalidPalOperation(other.ouch);
+      }
+    }
+
+    public pal_port_add_result deepCopy() {
+      return new pal_port_add_result(this);
+    }
+
+    @Override
+    public void clear() {
+      setSuccessIsSet(false);
+      this.success = 0;
+      this.ouch = null;
+    }
+
+    public int getSuccess() {
+      return this.success;
+    }
+
+    public pal_port_add_result setSuccess(int success) {
+      this.success = success;
+      setSuccessIsSet(true);
+      return this;
+    }
+
+    public void unsetSuccess() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
+    }
+
+    public InvalidPalOperation getOuch() {
+      return this.ouch;
+    }
+
+    public pal_port_add_result setOuch(InvalidPalOperation ouch) {
+      this.ouch = ouch;
+      return this;
+    }
+
+    public void unsetOuch() {
+      this.ouch = null;
+    }
+
+    /** Returns true if field ouch is set (has been assigned a value) and false otherwise */
+    public boolean isSetOuch() {
+      return this.ouch != null;
+    }
+
+    public void setOuchIsSet(boolean value) {
+      if (!value) {
+        this.ouch = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((Integer)value);
+        }
+        break;
+
+      case OUCH:
+        if (value == null) {
+          unsetOuch();
+        } else {
+          setOuch((InvalidPalOperation)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
+      case OUCH:
+        return getOuch();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
+      case OUCH:
+        return isSetOuch();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof pal_port_add_result)
+        return this.equals((pal_port_add_result)that);
+      return false;
+    }
+
+    public boolean equals(pal_port_add_result that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_success = true;
+      boolean that_present_success = true;
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (this.success != that.success)
+          return false;
+      }
+
+      boolean this_present_ouch = true && this.isSetOuch();
+      boolean that_present_ouch = true && that.isSetOuch();
+      if (this_present_ouch || that_present_ouch) {
+        if (!(this_present_ouch && that_present_ouch))
+          return false;
+        if (!this.ouch.equals(that.ouch))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + success;
+
+      hashCode = hashCode * 8191 + ((isSetOuch()) ? 131071 : 524287);
+      if (isSetOuch())
+        hashCode = hashCode * 8191 + ouch.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(pal_port_add_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetOuch()).compareTo(other.isSetOuch());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetOuch()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch, other.ouch);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+      }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("pal_port_add_result(");
+      boolean first = true;
+
+      sb.append("success:");
+      sb.append(this.success);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ouch:");
+      if (this.ouch == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ouch);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class pal_port_add_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_add_resultStandardScheme getScheme() {
+        return new pal_port_add_resultStandardScheme();
+      }
+    }
+
+    private static class pal_port_add_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<pal_port_add_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, pal_port_add_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.success = iprot.readI32();
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 1: // OUCH
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ouch = new InvalidPalOperation();
+                struct.ouch.read(iprot);
+                struct.setOuchIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, pal_port_add_result struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.isSetSuccess()) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          oprot.writeI32(struct.success);
+          oprot.writeFieldEnd();
+        }
+        if (struct.ouch != null) {
+          oprot.writeFieldBegin(OUCH_FIELD_DESC);
+          struct.ouch.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class pal_port_add_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_add_resultTupleScheme getScheme() {
+        return new pal_port_add_resultTupleScheme();
+      }
+    }
+
+    private static class pal_port_add_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<pal_port_add_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, pal_port_add_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetSuccess()) {
+          optionals.set(0);
+        }
+        if (struct.isSetOuch()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetSuccess()) {
+          oprot.writeI32(struct.success);
+        }
+        if (struct.isSetOuch()) {
+          struct.ouch.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, pal_port_add_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          struct.success = iprot.readI32();
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.ouch = new InvalidPalOperation();
+          struct.ouch.read(iprot);
+          struct.setOuchIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class pal_port_add_all_args implements org.apache.thrift.TBase<pal_port_add_all_args, pal_port_add_all_args._Fields>, java.io.Serializable, Cloneable, Comparable<pal_port_add_all_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pal_port_add_all_args");
+
+    private static final org.apache.thrift.protocol.TField DEVICE_FIELD_DESC = new org.apache.thrift.protocol.TField("device", org.apache.thrift.protocol.TType.BYTE, (short)1);
+    private static final org.apache.thrift.protocol.TField PS_FIELD_DESC = new org.apache.thrift.protocol.TField("ps", org.apache.thrift.protocol.TType.I32, (short)2);
+    private static final org.apache.thrift.protocol.TField FEC_FIELD_DESC = new org.apache.thrift.protocol.TField("fec", org.apache.thrift.protocol.TType.I32, (short)3);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new pal_port_add_all_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pal_port_add_all_argsTupleSchemeFactory();
+
+    public byte device; // required
+    /**
+     * 
+     * @see pal_port_speed_t
+     */
+    public pal_port_speed_t ps; // required
+    /**
+     * 
+     * @see pal_fec_type_t
+     */
+    public pal_fec_type_t fec; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      DEVICE((short)1, "device"),
+      /**
+       * 
+       * @see pal_port_speed_t
+       */
+      PS((short)2, "ps"),
+      /**
+       * 
+       * @see pal_fec_type_t
+       */
+      FEC((short)3, "fec");
+
+      private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // DEVICE
+            return DEVICE;
+          case 2: // PS
+            return PS;
+          case 3: // FEC
+            return FEC;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __DEVICE_ISSET_ID = 0;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.DEVICE, new org.apache.thrift.meta_data.FieldMetaData("device", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BYTE          , "pal_device_t")));
+      tmpMap.put(_Fields.PS, new org.apache.thrift.meta_data.FieldMetaData("ps", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, pal_port_speed_t.class)));
+      tmpMap.put(_Fields.FEC, new org.apache.thrift.meta_data.FieldMetaData("fec", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, pal_fec_type_t.class)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pal_port_add_all_args.class, metaDataMap);
+    }
+
+    public pal_port_add_all_args() {
+    }
+
+    public pal_port_add_all_args(
+      byte device,
+      pal_port_speed_t ps,
+      pal_fec_type_t fec)
+    {
+      this();
+      this.device = device;
+      setDeviceIsSet(true);
+      this.ps = ps;
+      this.fec = fec;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public pal_port_add_all_args(pal_port_add_all_args other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.device = other.device;
+      if (other.isSetPs()) {
+        this.ps = other.ps;
+      }
+      if (other.isSetFec()) {
+        this.fec = other.fec;
+      }
+    }
+
+    public pal_port_add_all_args deepCopy() {
+      return new pal_port_add_all_args(this);
+    }
+
+    @Override
+    public void clear() {
+      setDeviceIsSet(false);
+      this.device = 0;
+      this.ps = null;
+      this.fec = null;
+    }
+
+    public byte getDevice() {
+      return this.device;
+    }
+
+    public pal_port_add_all_args setDevice(byte device) {
+      this.device = device;
+      setDeviceIsSet(true);
+      return this;
+    }
+
+    public void unsetDevice() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DEVICE_ISSET_ID);
+    }
+
+    /** Returns true if field device is set (has been assigned a value) and false otherwise */
+    public boolean isSetDevice() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DEVICE_ISSET_ID);
+    }
+
+    public void setDeviceIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DEVICE_ISSET_ID, value);
+    }
+
+    /**
+     * 
+     * @see pal_port_speed_t
+     */
+    public pal_port_speed_t getPs() {
+      return this.ps;
+    }
+
+    /**
+     * 
+     * @see pal_port_speed_t
+     */
+    public pal_port_add_all_args setPs(pal_port_speed_t ps) {
+      this.ps = ps;
+      return this;
+    }
+
+    public void unsetPs() {
+      this.ps = null;
+    }
+
+    /** Returns true if field ps is set (has been assigned a value) and false otherwise */
+    public boolean isSetPs() {
+      return this.ps != null;
+    }
+
+    public void setPsIsSet(boolean value) {
+      if (!value) {
+        this.ps = null;
+      }
+    }
+
+    /**
+     * 
+     * @see pal_fec_type_t
+     */
+    public pal_fec_type_t getFec() {
+      return this.fec;
+    }
+
+    /**
+     * 
+     * @see pal_fec_type_t
+     */
+    public pal_port_add_all_args setFec(pal_fec_type_t fec) {
+      this.fec = fec;
+      return this;
+    }
+
+    public void unsetFec() {
+      this.fec = null;
+    }
+
+    /** Returns true if field fec is set (has been assigned a value) and false otherwise */
+    public boolean isSetFec() {
+      return this.fec != null;
+    }
+
+    public void setFecIsSet(boolean value) {
+      if (!value) {
+        this.fec = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case DEVICE:
+        if (value == null) {
+          unsetDevice();
+        } else {
+          setDevice((Byte)value);
+        }
+        break;
+
+      case PS:
+        if (value == null) {
+          unsetPs();
+        } else {
+          setPs((pal_port_speed_t)value);
+        }
+        break;
+
+      case FEC:
+        if (value == null) {
+          unsetFec();
+        } else {
+          setFec((pal_fec_type_t)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case DEVICE:
+        return getDevice();
+
+      case PS:
+        return getPs();
+
+      case FEC:
+        return getFec();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case DEVICE:
+        return isSetDevice();
+      case PS:
+        return isSetPs();
+      case FEC:
+        return isSetFec();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof pal_port_add_all_args)
+        return this.equals((pal_port_add_all_args)that);
+      return false;
+    }
+
+    public boolean equals(pal_port_add_all_args that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_device = true;
+      boolean that_present_device = true;
+      if (this_present_device || that_present_device) {
+        if (!(this_present_device && that_present_device))
+          return false;
+        if (this.device != that.device)
+          return false;
+      }
+
+      boolean this_present_ps = true && this.isSetPs();
+      boolean that_present_ps = true && that.isSetPs();
+      if (this_present_ps || that_present_ps) {
+        if (!(this_present_ps && that_present_ps))
+          return false;
+        if (!this.ps.equals(that.ps))
+          return false;
+      }
+
+      boolean this_present_fec = true && this.isSetFec();
+      boolean that_present_fec = true && that.isSetFec();
+      if (this_present_fec || that_present_fec) {
+        if (!(this_present_fec && that_present_fec))
+          return false;
+        if (!this.fec.equals(that.fec))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + (int) (device);
+
+      hashCode = hashCode * 8191 + ((isSetPs()) ? 131071 : 524287);
+      if (isSetPs())
+        hashCode = hashCode * 8191 + ps.getValue();
+
+      hashCode = hashCode * 8191 + ((isSetFec()) ? 131071 : 524287);
+      if (isSetFec())
+        hashCode = hashCode * 8191 + fec.getValue();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(pal_port_add_all_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetDevice()).compareTo(other.isSetDevice());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetDevice()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.device, other.device);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetPs()).compareTo(other.isSetPs());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetPs()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ps, other.ps);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetFec()).compareTo(other.isSetFec());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetFec()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fec, other.fec);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+    }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("pal_port_add_all_args(");
+      boolean first = true;
+
+      sb.append("device:");
+      sb.append(this.device);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ps:");
+      if (this.ps == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ps);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("fec:");
+      if (this.fec == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.fec);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class pal_port_add_all_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_add_all_argsStandardScheme getScheme() {
+        return new pal_port_add_all_argsStandardScheme();
+      }
+    }
+
+    private static class pal_port_add_all_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<pal_port_add_all_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, pal_port_add_all_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // DEVICE
+              if (schemeField.type == org.apache.thrift.protocol.TType.BYTE) {
+                struct.device = iprot.readByte();
+                struct.setDeviceIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // PS
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.ps = pal_port_speed_t.findByValue(iprot.readI32());
+                struct.setPsIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 3: // FEC
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.fec = pal_fec_type_t.findByValue(iprot.readI32());
+                struct.setFecIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, pal_port_add_all_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        oprot.writeFieldBegin(DEVICE_FIELD_DESC);
+        oprot.writeByte(struct.device);
+        oprot.writeFieldEnd();
+        if (struct.ps != null) {
+          oprot.writeFieldBegin(PS_FIELD_DESC);
+          oprot.writeI32(struct.ps.getValue());
+          oprot.writeFieldEnd();
+        }
+        if (struct.fec != null) {
+          oprot.writeFieldBegin(FEC_FIELD_DESC);
+          oprot.writeI32(struct.fec.getValue());
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class pal_port_add_all_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_add_all_argsTupleScheme getScheme() {
+        return new pal_port_add_all_argsTupleScheme();
+      }
+    }
+
+    private static class pal_port_add_all_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<pal_port_add_all_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, pal_port_add_all_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetDevice()) {
+          optionals.set(0);
+        }
+        if (struct.isSetPs()) {
+          optionals.set(1);
+        }
+        if (struct.isSetFec()) {
+          optionals.set(2);
+        }
+        oprot.writeBitSet(optionals, 3);
+        if (struct.isSetDevice()) {
+          oprot.writeByte(struct.device);
+        }
+        if (struct.isSetPs()) {
+          oprot.writeI32(struct.ps.getValue());
+        }
+        if (struct.isSetFec()) {
+          oprot.writeI32(struct.fec.getValue());
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, pal_port_add_all_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(3);
+        if (incoming.get(0)) {
+          struct.device = iprot.readByte();
+          struct.setDeviceIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.ps = pal_port_speed_t.findByValue(iprot.readI32());
+          struct.setPsIsSet(true);
+        }
+        if (incoming.get(2)) {
+          struct.fec = pal_fec_type_t.findByValue(iprot.readI32());
+          struct.setFecIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class pal_port_add_all_result implements org.apache.thrift.TBase<pal_port_add_all_result, pal_port_add_all_result._Fields>, java.io.Serializable, Cloneable, Comparable<pal_port_add_all_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pal_port_add_all_result");
+
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.I32, (short)0);
+    private static final org.apache.thrift.protocol.TField OUCH_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new pal_port_add_all_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pal_port_add_all_resultTupleSchemeFactory();
+
+    public int success; // required
+    public InvalidPalOperation ouch; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      SUCCESS((short)0, "success"),
+      OUCH((short)1, "ouch");
+
+      private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
+          case 1: // OUCH
+            return OUCH;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __SUCCESS_ISSET_ID = 0;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32          , "pal_status_t")));
+      tmpMap.put(_Fields.OUCH, new org.apache.thrift.meta_data.FieldMetaData("ouch", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidPalOperation.class)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pal_port_add_all_result.class, metaDataMap);
+    }
+
+    public pal_port_add_all_result() {
+    }
+
+    public pal_port_add_all_result(
+      int success,
+      InvalidPalOperation ouch)
+    {
+      this();
+      this.success = success;
+      setSuccessIsSet(true);
+      this.ouch = ouch;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public pal_port_add_all_result(pal_port_add_all_result other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.success = other.success;
+      if (other.isSetOuch()) {
+        this.ouch = new InvalidPalOperation(other.ouch);
+      }
+    }
+
+    public pal_port_add_all_result deepCopy() {
+      return new pal_port_add_all_result(this);
+    }
+
+    @Override
+    public void clear() {
+      setSuccessIsSet(false);
+      this.success = 0;
+      this.ouch = null;
+    }
+
+    public int getSuccess() {
+      return this.success;
+    }
+
+    public pal_port_add_all_result setSuccess(int success) {
+      this.success = success;
+      setSuccessIsSet(true);
+      return this;
+    }
+
+    public void unsetSuccess() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
+    }
+
+    public InvalidPalOperation getOuch() {
+      return this.ouch;
+    }
+
+    public pal_port_add_all_result setOuch(InvalidPalOperation ouch) {
+      this.ouch = ouch;
+      return this;
+    }
+
+    public void unsetOuch() {
+      this.ouch = null;
+    }
+
+    /** Returns true if field ouch is set (has been assigned a value) and false otherwise */
+    public boolean isSetOuch() {
+      return this.ouch != null;
+    }
+
+    public void setOuchIsSet(boolean value) {
+      if (!value) {
+        this.ouch = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((Integer)value);
+        }
+        break;
+
+      case OUCH:
+        if (value == null) {
+          unsetOuch();
+        } else {
+          setOuch((InvalidPalOperation)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
+      case OUCH:
+        return getOuch();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
+      case OUCH:
+        return isSetOuch();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof pal_port_add_all_result)
+        return this.equals((pal_port_add_all_result)that);
+      return false;
+    }
+
+    public boolean equals(pal_port_add_all_result that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_success = true;
+      boolean that_present_success = true;
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (this.success != that.success)
+          return false;
+      }
+
+      boolean this_present_ouch = true && this.isSetOuch();
+      boolean that_present_ouch = true && that.isSetOuch();
+      if (this_present_ouch || that_present_ouch) {
+        if (!(this_present_ouch && that_present_ouch))
+          return false;
+        if (!this.ouch.equals(that.ouch))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + success;
+
+      hashCode = hashCode * 8191 + ((isSetOuch()) ? 131071 : 524287);
+      if (isSetOuch())
+        hashCode = hashCode * 8191 + ouch.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(pal_port_add_all_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetOuch()).compareTo(other.isSetOuch());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetOuch()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch, other.ouch);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+      }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("pal_port_add_all_result(");
+      boolean first = true;
+
+      sb.append("success:");
+      sb.append(this.success);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ouch:");
+      if (this.ouch == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ouch);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class pal_port_add_all_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_add_all_resultStandardScheme getScheme() {
+        return new pal_port_add_all_resultStandardScheme();
+      }
+    }
+
+    private static class pal_port_add_all_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<pal_port_add_all_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, pal_port_add_all_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.success = iprot.readI32();
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 1: // OUCH
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ouch = new InvalidPalOperation();
+                struct.ouch.read(iprot);
+                struct.setOuchIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, pal_port_add_all_result struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.isSetSuccess()) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          oprot.writeI32(struct.success);
+          oprot.writeFieldEnd();
+        }
+        if (struct.ouch != null) {
+          oprot.writeFieldBegin(OUCH_FIELD_DESC);
+          struct.ouch.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class pal_port_add_all_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_add_all_resultTupleScheme getScheme() {
+        return new pal_port_add_all_resultTupleScheme();
+      }
+    }
+
+    private static class pal_port_add_all_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<pal_port_add_all_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, pal_port_add_all_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetSuccess()) {
+          optionals.set(0);
+        }
+        if (struct.isSetOuch()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetSuccess()) {
+          oprot.writeI32(struct.success);
+        }
+        if (struct.isSetOuch()) {
+          struct.ouch.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, pal_port_add_all_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          struct.success = iprot.readI32();
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.ouch = new InvalidPalOperation();
+          struct.ouch.read(iprot);
+          struct.setOuchIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class pal_port_del_args implements org.apache.thrift.TBase<pal_port_del_args, pal_port_del_args._Fields>, java.io.Serializable, Cloneable, Comparable<pal_port_del_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pal_port_del_args");
+
+    private static final org.apache.thrift.protocol.TField DEVICE_FIELD_DESC = new org.apache.thrift.protocol.TField("device", org.apache.thrift.protocol.TType.BYTE, (short)1);
+    private static final org.apache.thrift.protocol.TField DEV_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("dev_port", org.apache.thrift.protocol.TType.I32, (short)2);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new pal_port_del_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pal_port_del_argsTupleSchemeFactory();
+
+    public byte device; // required
+    public int dev_port; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      DEVICE((short)1, "device"),
+      DEV_PORT((short)2, "dev_port");
+
+      private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // DEVICE
+            return DEVICE;
+          case 2: // DEV_PORT
+            return DEV_PORT;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __DEVICE_ISSET_ID = 0;
+    private static final int __DEV_PORT_ISSET_ID = 1;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.DEVICE, new org.apache.thrift.meta_data.FieldMetaData("device", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BYTE          , "pal_device_t")));
+      tmpMap.put(_Fields.DEV_PORT, new org.apache.thrift.meta_data.FieldMetaData("dev_port", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32          , "pal_dev_port_t")));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pal_port_del_args.class, metaDataMap);
+    }
+
+    public pal_port_del_args() {
+    }
+
+    public pal_port_del_args(
+      byte device,
+      int dev_port)
+    {
+      this();
+      this.device = device;
+      setDeviceIsSet(true);
+      this.dev_port = dev_port;
+      setDev_portIsSet(true);
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public pal_port_del_args(pal_port_del_args other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.device = other.device;
+      this.dev_port = other.dev_port;
+    }
+
+    public pal_port_del_args deepCopy() {
+      return new pal_port_del_args(this);
+    }
+
+    @Override
+    public void clear() {
+      setDeviceIsSet(false);
+      this.device = 0;
+      setDev_portIsSet(false);
+      this.dev_port = 0;
+    }
+
+    public byte getDevice() {
+      return this.device;
+    }
+
+    public pal_port_del_args setDevice(byte device) {
+      this.device = device;
+      setDeviceIsSet(true);
+      return this;
+    }
+
+    public void unsetDevice() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DEVICE_ISSET_ID);
+    }
+
+    /** Returns true if field device is set (has been assigned a value) and false otherwise */
+    public boolean isSetDevice() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DEVICE_ISSET_ID);
+    }
+
+    public void setDeviceIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DEVICE_ISSET_ID, value);
+    }
+
+    public int getDev_port() {
+      return this.dev_port;
+    }
+
+    public pal_port_del_args setDev_port(int dev_port) {
+      this.dev_port = dev_port;
+      setDev_portIsSet(true);
+      return this;
+    }
+
+    public void unsetDev_port() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DEV_PORT_ISSET_ID);
+    }
+
+    /** Returns true if field dev_port is set (has been assigned a value) and false otherwise */
+    public boolean isSetDev_port() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DEV_PORT_ISSET_ID);
+    }
+
+    public void setDev_portIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DEV_PORT_ISSET_ID, value);
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case DEVICE:
+        if (value == null) {
+          unsetDevice();
+        } else {
+          setDevice((Byte)value);
+        }
+        break;
+
+      case DEV_PORT:
+        if (value == null) {
+          unsetDev_port();
+        } else {
+          setDev_port((Integer)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case DEVICE:
+        return getDevice();
+
+      case DEV_PORT:
+        return getDev_port();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case DEVICE:
+        return isSetDevice();
+      case DEV_PORT:
+        return isSetDev_port();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof pal_port_del_args)
+        return this.equals((pal_port_del_args)that);
+      return false;
+    }
+
+    public boolean equals(pal_port_del_args that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_device = true;
+      boolean that_present_device = true;
+      if (this_present_device || that_present_device) {
+        if (!(this_present_device && that_present_device))
+          return false;
+        if (this.device != that.device)
+          return false;
+      }
+
+      boolean this_present_dev_port = true;
+      boolean that_present_dev_port = true;
+      if (this_present_dev_port || that_present_dev_port) {
+        if (!(this_present_dev_port && that_present_dev_port))
+          return false;
+        if (this.dev_port != that.dev_port)
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + (int) (device);
+
+      hashCode = hashCode * 8191 + dev_port;
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(pal_port_del_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetDevice()).compareTo(other.isSetDevice());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetDevice()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.device, other.device);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetDev_port()).compareTo(other.isSetDev_port());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetDev_port()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dev_port, other.dev_port);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+    }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("pal_port_del_args(");
+      boolean first = true;
+
+      sb.append("device:");
+      sb.append(this.device);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("dev_port:");
+      sb.append(this.dev_port);
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class pal_port_del_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_del_argsStandardScheme getScheme() {
+        return new pal_port_del_argsStandardScheme();
+      }
+    }
+
+    private static class pal_port_del_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<pal_port_del_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, pal_port_del_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // DEVICE
+              if (schemeField.type == org.apache.thrift.protocol.TType.BYTE) {
+                struct.device = iprot.readByte();
+                struct.setDeviceIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // DEV_PORT
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.dev_port = iprot.readI32();
+                struct.setDev_portIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, pal_port_del_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        oprot.writeFieldBegin(DEVICE_FIELD_DESC);
+        oprot.writeByte(struct.device);
+        oprot.writeFieldEnd();
+        oprot.writeFieldBegin(DEV_PORT_FIELD_DESC);
+        oprot.writeI32(struct.dev_port);
+        oprot.writeFieldEnd();
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class pal_port_del_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_del_argsTupleScheme getScheme() {
+        return new pal_port_del_argsTupleScheme();
+      }
+    }
+
+    private static class pal_port_del_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<pal_port_del_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, pal_port_del_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetDevice()) {
+          optionals.set(0);
+        }
+        if (struct.isSetDev_port()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetDevice()) {
+          oprot.writeByte(struct.device);
+        }
+        if (struct.isSetDev_port()) {
+          oprot.writeI32(struct.dev_port);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, pal_port_del_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          struct.device = iprot.readByte();
+          struct.setDeviceIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.dev_port = iprot.readI32();
+          struct.setDev_portIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class pal_port_del_result implements org.apache.thrift.TBase<pal_port_del_result, pal_port_del_result._Fields>, java.io.Serializable, Cloneable, Comparable<pal_port_del_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pal_port_del_result");
+
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.I32, (short)0);
+    private static final org.apache.thrift.protocol.TField OUCH_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new pal_port_del_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pal_port_del_resultTupleSchemeFactory();
+
+    public int success; // required
+    public InvalidPalOperation ouch; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      SUCCESS((short)0, "success"),
+      OUCH((short)1, "ouch");
+
+      private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
+          case 1: // OUCH
+            return OUCH;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __SUCCESS_ISSET_ID = 0;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32          , "pal_status_t")));
+      tmpMap.put(_Fields.OUCH, new org.apache.thrift.meta_data.FieldMetaData("ouch", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidPalOperation.class)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pal_port_del_result.class, metaDataMap);
+    }
+
+    public pal_port_del_result() {
+    }
+
+    public pal_port_del_result(
+      int success,
+      InvalidPalOperation ouch)
+    {
+      this();
+      this.success = success;
+      setSuccessIsSet(true);
+      this.ouch = ouch;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public pal_port_del_result(pal_port_del_result other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.success = other.success;
+      if (other.isSetOuch()) {
+        this.ouch = new InvalidPalOperation(other.ouch);
+      }
+    }
+
+    public pal_port_del_result deepCopy() {
+      return new pal_port_del_result(this);
+    }
+
+    @Override
+    public void clear() {
+      setSuccessIsSet(false);
+      this.success = 0;
+      this.ouch = null;
+    }
+
+    public int getSuccess() {
+      return this.success;
+    }
+
+    public pal_port_del_result setSuccess(int success) {
+      this.success = success;
+      setSuccessIsSet(true);
+      return this;
+    }
+
+    public void unsetSuccess() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
+    }
+
+    public InvalidPalOperation getOuch() {
+      return this.ouch;
+    }
+
+    public pal_port_del_result setOuch(InvalidPalOperation ouch) {
+      this.ouch = ouch;
+      return this;
+    }
+
+    public void unsetOuch() {
+      this.ouch = null;
+    }
+
+    /** Returns true if field ouch is set (has been assigned a value) and false otherwise */
+    public boolean isSetOuch() {
+      return this.ouch != null;
+    }
+
+    public void setOuchIsSet(boolean value) {
+      if (!value) {
+        this.ouch = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((Integer)value);
+        }
+        break;
+
+      case OUCH:
+        if (value == null) {
+          unsetOuch();
+        } else {
+          setOuch((InvalidPalOperation)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
+      case OUCH:
+        return getOuch();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
+      case OUCH:
+        return isSetOuch();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof pal_port_del_result)
+        return this.equals((pal_port_del_result)that);
+      return false;
+    }
+
+    public boolean equals(pal_port_del_result that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_success = true;
+      boolean that_present_success = true;
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (this.success != that.success)
+          return false;
+      }
+
+      boolean this_present_ouch = true && this.isSetOuch();
+      boolean that_present_ouch = true && that.isSetOuch();
+      if (this_present_ouch || that_present_ouch) {
+        if (!(this_present_ouch && that_present_ouch))
+          return false;
+        if (!this.ouch.equals(that.ouch))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + success;
+
+      hashCode = hashCode * 8191 + ((isSetOuch()) ? 131071 : 524287);
+      if (isSetOuch())
+        hashCode = hashCode * 8191 + ouch.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(pal_port_del_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetOuch()).compareTo(other.isSetOuch());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetOuch()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch, other.ouch);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+      }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("pal_port_del_result(");
+      boolean first = true;
+
+      sb.append("success:");
+      sb.append(this.success);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ouch:");
+      if (this.ouch == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ouch);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class pal_port_del_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_del_resultStandardScheme getScheme() {
+        return new pal_port_del_resultStandardScheme();
+      }
+    }
+
+    private static class pal_port_del_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<pal_port_del_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, pal_port_del_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.success = iprot.readI32();
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 1: // OUCH
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ouch = new InvalidPalOperation();
+                struct.ouch.read(iprot);
+                struct.setOuchIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, pal_port_del_result struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.isSetSuccess()) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          oprot.writeI32(struct.success);
+          oprot.writeFieldEnd();
+        }
+        if (struct.ouch != null) {
+          oprot.writeFieldBegin(OUCH_FIELD_DESC);
+          struct.ouch.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class pal_port_del_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_del_resultTupleScheme getScheme() {
+        return new pal_port_del_resultTupleScheme();
+      }
+    }
+
+    private static class pal_port_del_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<pal_port_del_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, pal_port_del_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetSuccess()) {
+          optionals.set(0);
+        }
+        if (struct.isSetOuch()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetSuccess()) {
+          oprot.writeI32(struct.success);
+        }
+        if (struct.isSetOuch()) {
+          struct.ouch.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, pal_port_del_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          struct.success = iprot.readI32();
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.ouch = new InvalidPalOperation();
+          struct.ouch.read(iprot);
+          struct.setOuchIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class pal_port_del_all_args implements org.apache.thrift.TBase<pal_port_del_all_args, pal_port_del_all_args._Fields>, java.io.Serializable, Cloneable, Comparable<pal_port_del_all_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pal_port_del_all_args");
+
+    private static final org.apache.thrift.protocol.TField DEVICE_FIELD_DESC = new org.apache.thrift.protocol.TField("device", org.apache.thrift.protocol.TType.BYTE, (short)1);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new pal_port_del_all_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pal_port_del_all_argsTupleSchemeFactory();
+
+    public byte device; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      DEVICE((short)1, "device");
+
+      private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // DEVICE
+            return DEVICE;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __DEVICE_ISSET_ID = 0;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.DEVICE, new org.apache.thrift.meta_data.FieldMetaData("device", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BYTE          , "pal_device_t")));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pal_port_del_all_args.class, metaDataMap);
+    }
+
+    public pal_port_del_all_args() {
+    }
+
+    public pal_port_del_all_args(
+      byte device)
+    {
+      this();
+      this.device = device;
+      setDeviceIsSet(true);
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public pal_port_del_all_args(pal_port_del_all_args other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.device = other.device;
+    }
+
+    public pal_port_del_all_args deepCopy() {
+      return new pal_port_del_all_args(this);
+    }
+
+    @Override
+    public void clear() {
+      setDeviceIsSet(false);
+      this.device = 0;
+    }
+
+    public byte getDevice() {
+      return this.device;
+    }
+
+    public pal_port_del_all_args setDevice(byte device) {
+      this.device = device;
+      setDeviceIsSet(true);
+      return this;
+    }
+
+    public void unsetDevice() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DEVICE_ISSET_ID);
+    }
+
+    /** Returns true if field device is set (has been assigned a value) and false otherwise */
+    public boolean isSetDevice() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DEVICE_ISSET_ID);
+    }
+
+    public void setDeviceIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DEVICE_ISSET_ID, value);
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case DEVICE:
+        if (value == null) {
+          unsetDevice();
+        } else {
+          setDevice((Byte)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case DEVICE:
+        return getDevice();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case DEVICE:
+        return isSetDevice();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof pal_port_del_all_args)
+        return this.equals((pal_port_del_all_args)that);
+      return false;
+    }
+
+    public boolean equals(pal_port_del_all_args that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_device = true;
+      boolean that_present_device = true;
+      if (this_present_device || that_present_device) {
+        if (!(this_present_device && that_present_device))
+          return false;
+        if (this.device != that.device)
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + (int) (device);
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(pal_port_del_all_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetDevice()).compareTo(other.isSetDevice());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetDevice()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.device, other.device);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+    }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("pal_port_del_all_args(");
+      boolean first = true;
+
+      sb.append("device:");
+      sb.append(this.device);
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class pal_port_del_all_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_del_all_argsStandardScheme getScheme() {
+        return new pal_port_del_all_argsStandardScheme();
+      }
+    }
+
+    private static class pal_port_del_all_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<pal_port_del_all_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, pal_port_del_all_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // DEVICE
+              if (schemeField.type == org.apache.thrift.protocol.TType.BYTE) {
+                struct.device = iprot.readByte();
+                struct.setDeviceIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, pal_port_del_all_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        oprot.writeFieldBegin(DEVICE_FIELD_DESC);
+        oprot.writeByte(struct.device);
+        oprot.writeFieldEnd();
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class pal_port_del_all_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_del_all_argsTupleScheme getScheme() {
+        return new pal_port_del_all_argsTupleScheme();
+      }
+    }
+
+    private static class pal_port_del_all_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<pal_port_del_all_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, pal_port_del_all_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetDevice()) {
+          optionals.set(0);
+        }
+        oprot.writeBitSet(optionals, 1);
+        if (struct.isSetDevice()) {
+          oprot.writeByte(struct.device);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, pal_port_del_all_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(1);
+        if (incoming.get(0)) {
+          struct.device = iprot.readByte();
+          struct.setDeviceIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class pal_port_del_all_result implements org.apache.thrift.TBase<pal_port_del_all_result, pal_port_del_all_result._Fields>, java.io.Serializable, Cloneable, Comparable<pal_port_del_all_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pal_port_del_all_result");
+
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.I32, (short)0);
+    private static final org.apache.thrift.protocol.TField OUCH_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new pal_port_del_all_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pal_port_del_all_resultTupleSchemeFactory();
+
+    public int success; // required
+    public InvalidPalOperation ouch; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      SUCCESS((short)0, "success"),
+      OUCH((short)1, "ouch");
+
+      private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
+          case 1: // OUCH
+            return OUCH;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __SUCCESS_ISSET_ID = 0;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32          , "pal_status_t")));
+      tmpMap.put(_Fields.OUCH, new org.apache.thrift.meta_data.FieldMetaData("ouch", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidPalOperation.class)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pal_port_del_all_result.class, metaDataMap);
+    }
+
+    public pal_port_del_all_result() {
+    }
+
+    public pal_port_del_all_result(
+      int success,
+      InvalidPalOperation ouch)
+    {
+      this();
+      this.success = success;
+      setSuccessIsSet(true);
+      this.ouch = ouch;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public pal_port_del_all_result(pal_port_del_all_result other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.success = other.success;
+      if (other.isSetOuch()) {
+        this.ouch = new InvalidPalOperation(other.ouch);
+      }
+    }
+
+    public pal_port_del_all_result deepCopy() {
+      return new pal_port_del_all_result(this);
+    }
+
+    @Override
+    public void clear() {
+      setSuccessIsSet(false);
+      this.success = 0;
+      this.ouch = null;
+    }
+
+    public int getSuccess() {
+      return this.success;
+    }
+
+    public pal_port_del_all_result setSuccess(int success) {
+      this.success = success;
+      setSuccessIsSet(true);
+      return this;
+    }
+
+    public void unsetSuccess() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
+    }
+
+    public InvalidPalOperation getOuch() {
+      return this.ouch;
+    }
+
+    public pal_port_del_all_result setOuch(InvalidPalOperation ouch) {
+      this.ouch = ouch;
+      return this;
+    }
+
+    public void unsetOuch() {
+      this.ouch = null;
+    }
+
+    /** Returns true if field ouch is set (has been assigned a value) and false otherwise */
+    public boolean isSetOuch() {
+      return this.ouch != null;
+    }
+
+    public void setOuchIsSet(boolean value) {
+      if (!value) {
+        this.ouch = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((Integer)value);
+        }
+        break;
+
+      case OUCH:
+        if (value == null) {
+          unsetOuch();
+        } else {
+          setOuch((InvalidPalOperation)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
+      case OUCH:
+        return getOuch();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
+      case OUCH:
+        return isSetOuch();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof pal_port_del_all_result)
+        return this.equals((pal_port_del_all_result)that);
+      return false;
+    }
+
+    public boolean equals(pal_port_del_all_result that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_success = true;
+      boolean that_present_success = true;
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (this.success != that.success)
+          return false;
+      }
+
+      boolean this_present_ouch = true && this.isSetOuch();
+      boolean that_present_ouch = true && that.isSetOuch();
+      if (this_present_ouch || that_present_ouch) {
+        if (!(this_present_ouch && that_present_ouch))
+          return false;
+        if (!this.ouch.equals(that.ouch))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + success;
+
+      hashCode = hashCode * 8191 + ((isSetOuch()) ? 131071 : 524287);
+      if (isSetOuch())
+        hashCode = hashCode * 8191 + ouch.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(pal_port_del_all_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetOuch()).compareTo(other.isSetOuch());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetOuch()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch, other.ouch);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+      }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("pal_port_del_all_result(");
+      boolean first = true;
+
+      sb.append("success:");
+      sb.append(this.success);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ouch:");
+      if (this.ouch == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ouch);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class pal_port_del_all_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_del_all_resultStandardScheme getScheme() {
+        return new pal_port_del_all_resultStandardScheme();
+      }
+    }
+
+    private static class pal_port_del_all_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<pal_port_del_all_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, pal_port_del_all_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.success = iprot.readI32();
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 1: // OUCH
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ouch = new InvalidPalOperation();
+                struct.ouch.read(iprot);
+                struct.setOuchIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, pal_port_del_all_result struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.isSetSuccess()) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          oprot.writeI32(struct.success);
+          oprot.writeFieldEnd();
+        }
+        if (struct.ouch != null) {
+          oprot.writeFieldBegin(OUCH_FIELD_DESC);
+          struct.ouch.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class pal_port_del_all_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_del_all_resultTupleScheme getScheme() {
+        return new pal_port_del_all_resultTupleScheme();
+      }
+    }
+
+    private static class pal_port_del_all_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<pal_port_del_all_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, pal_port_del_all_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetSuccess()) {
+          optionals.set(0);
+        }
+        if (struct.isSetOuch()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetSuccess()) {
+          oprot.writeI32(struct.success);
+        }
+        if (struct.isSetOuch()) {
+          struct.ouch.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, pal_port_del_all_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          struct.success = iprot.readI32();
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.ouch = new InvalidPalOperation();
+          struct.ouch.read(iprot);
+          struct.setOuchIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class pal_port_enable_args implements org.apache.thrift.TBase<pal_port_enable_args, pal_port_enable_args._Fields>, java.io.Serializable, Cloneable, Comparable<pal_port_enable_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pal_port_enable_args");
+
+    private static final org.apache.thrift.protocol.TField DEVICE_FIELD_DESC = new org.apache.thrift.protocol.TField("device", org.apache.thrift.protocol.TType.BYTE, (short)1);
+    private static final org.apache.thrift.protocol.TField DEV_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("dev_port", org.apache.thrift.protocol.TType.I32, (short)2);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new pal_port_enable_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pal_port_enable_argsTupleSchemeFactory();
+
+    public byte device; // required
+    public int dev_port; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      DEVICE((short)1, "device"),
+      DEV_PORT((short)2, "dev_port");
+
+      private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // DEVICE
+            return DEVICE;
+          case 2: // DEV_PORT
+            return DEV_PORT;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __DEVICE_ISSET_ID = 0;
+    private static final int __DEV_PORT_ISSET_ID = 1;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.DEVICE, new org.apache.thrift.meta_data.FieldMetaData("device", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BYTE          , "pal_device_t")));
+      tmpMap.put(_Fields.DEV_PORT, new org.apache.thrift.meta_data.FieldMetaData("dev_port", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32          , "pal_dev_port_t")));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pal_port_enable_args.class, metaDataMap);
+    }
+
+    public pal_port_enable_args() {
+    }
+
+    public pal_port_enable_args(
+      byte device,
+      int dev_port)
+    {
+      this();
+      this.device = device;
+      setDeviceIsSet(true);
+      this.dev_port = dev_port;
+      setDev_portIsSet(true);
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public pal_port_enable_args(pal_port_enable_args other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.device = other.device;
+      this.dev_port = other.dev_port;
+    }
+
+    public pal_port_enable_args deepCopy() {
+      return new pal_port_enable_args(this);
+    }
+
+    @Override
+    public void clear() {
+      setDeviceIsSet(false);
+      this.device = 0;
+      setDev_portIsSet(false);
+      this.dev_port = 0;
+    }
+
+    public byte getDevice() {
+      return this.device;
+    }
+
+    public pal_port_enable_args setDevice(byte device) {
+      this.device = device;
+      setDeviceIsSet(true);
+      return this;
+    }
+
+    public void unsetDevice() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DEVICE_ISSET_ID);
+    }
+
+    /** Returns true if field device is set (has been assigned a value) and false otherwise */
+    public boolean isSetDevice() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DEVICE_ISSET_ID);
+    }
+
+    public void setDeviceIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DEVICE_ISSET_ID, value);
+    }
+
+    public int getDev_port() {
+      return this.dev_port;
+    }
+
+    public pal_port_enable_args setDev_port(int dev_port) {
+      this.dev_port = dev_port;
+      setDev_portIsSet(true);
+      return this;
+    }
+
+    public void unsetDev_port() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DEV_PORT_ISSET_ID);
+    }
+
+    /** Returns true if field dev_port is set (has been assigned a value) and false otherwise */
+    public boolean isSetDev_port() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DEV_PORT_ISSET_ID);
+    }
+
+    public void setDev_portIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DEV_PORT_ISSET_ID, value);
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case DEVICE:
+        if (value == null) {
+          unsetDevice();
+        } else {
+          setDevice((Byte)value);
+        }
+        break;
+
+      case DEV_PORT:
+        if (value == null) {
+          unsetDev_port();
+        } else {
+          setDev_port((Integer)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case DEVICE:
+        return getDevice();
+
+      case DEV_PORT:
+        return getDev_port();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case DEVICE:
+        return isSetDevice();
+      case DEV_PORT:
+        return isSetDev_port();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof pal_port_enable_args)
+        return this.equals((pal_port_enable_args)that);
+      return false;
+    }
+
+    public boolean equals(pal_port_enable_args that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_device = true;
+      boolean that_present_device = true;
+      if (this_present_device || that_present_device) {
+        if (!(this_present_device && that_present_device))
+          return false;
+        if (this.device != that.device)
+          return false;
+      }
+
+      boolean this_present_dev_port = true;
+      boolean that_present_dev_port = true;
+      if (this_present_dev_port || that_present_dev_port) {
+        if (!(this_present_dev_port && that_present_dev_port))
+          return false;
+        if (this.dev_port != that.dev_port)
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + (int) (device);
+
+      hashCode = hashCode * 8191 + dev_port;
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(pal_port_enable_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetDevice()).compareTo(other.isSetDevice());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetDevice()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.device, other.device);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetDev_port()).compareTo(other.isSetDev_port());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetDev_port()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dev_port, other.dev_port);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+    }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("pal_port_enable_args(");
+      boolean first = true;
+
+      sb.append("device:");
+      sb.append(this.device);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("dev_port:");
+      sb.append(this.dev_port);
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class pal_port_enable_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_enable_argsStandardScheme getScheme() {
+        return new pal_port_enable_argsStandardScheme();
+      }
+    }
+
+    private static class pal_port_enable_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<pal_port_enable_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, pal_port_enable_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // DEVICE
+              if (schemeField.type == org.apache.thrift.protocol.TType.BYTE) {
+                struct.device = iprot.readByte();
+                struct.setDeviceIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // DEV_PORT
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.dev_port = iprot.readI32();
+                struct.setDev_portIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, pal_port_enable_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        oprot.writeFieldBegin(DEVICE_FIELD_DESC);
+        oprot.writeByte(struct.device);
+        oprot.writeFieldEnd();
+        oprot.writeFieldBegin(DEV_PORT_FIELD_DESC);
+        oprot.writeI32(struct.dev_port);
+        oprot.writeFieldEnd();
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class pal_port_enable_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_enable_argsTupleScheme getScheme() {
+        return new pal_port_enable_argsTupleScheme();
+      }
+    }
+
+    private static class pal_port_enable_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<pal_port_enable_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, pal_port_enable_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetDevice()) {
+          optionals.set(0);
+        }
+        if (struct.isSetDev_port()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetDevice()) {
+          oprot.writeByte(struct.device);
+        }
+        if (struct.isSetDev_port()) {
+          oprot.writeI32(struct.dev_port);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, pal_port_enable_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          struct.device = iprot.readByte();
+          struct.setDeviceIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.dev_port = iprot.readI32();
+          struct.setDev_portIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class pal_port_enable_result implements org.apache.thrift.TBase<pal_port_enable_result, pal_port_enable_result._Fields>, java.io.Serializable, Cloneable, Comparable<pal_port_enable_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pal_port_enable_result");
+
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.I32, (short)0);
+    private static final org.apache.thrift.protocol.TField OUCH_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new pal_port_enable_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pal_port_enable_resultTupleSchemeFactory();
+
+    public int success; // required
+    public InvalidPalOperation ouch; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      SUCCESS((short)0, "success"),
+      OUCH((short)1, "ouch");
+
+      private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
+          case 1: // OUCH
+            return OUCH;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __SUCCESS_ISSET_ID = 0;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32          , "pal_status_t")));
+      tmpMap.put(_Fields.OUCH, new org.apache.thrift.meta_data.FieldMetaData("ouch", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidPalOperation.class)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pal_port_enable_result.class, metaDataMap);
+    }
+
+    public pal_port_enable_result() {
+    }
+
+    public pal_port_enable_result(
+      int success,
+      InvalidPalOperation ouch)
+    {
+      this();
+      this.success = success;
+      setSuccessIsSet(true);
+      this.ouch = ouch;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public pal_port_enable_result(pal_port_enable_result other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.success = other.success;
+      if (other.isSetOuch()) {
+        this.ouch = new InvalidPalOperation(other.ouch);
+      }
+    }
+
+    public pal_port_enable_result deepCopy() {
+      return new pal_port_enable_result(this);
+    }
+
+    @Override
+    public void clear() {
+      setSuccessIsSet(false);
+      this.success = 0;
+      this.ouch = null;
+    }
+
+    public int getSuccess() {
+      return this.success;
+    }
+
+    public pal_port_enable_result setSuccess(int success) {
+      this.success = success;
+      setSuccessIsSet(true);
+      return this;
+    }
+
+    public void unsetSuccess() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
+    }
+
+    public InvalidPalOperation getOuch() {
+      return this.ouch;
+    }
+
+    public pal_port_enable_result setOuch(InvalidPalOperation ouch) {
+      this.ouch = ouch;
+      return this;
+    }
+
+    public void unsetOuch() {
+      this.ouch = null;
+    }
+
+    /** Returns true if field ouch is set (has been assigned a value) and false otherwise */
+    public boolean isSetOuch() {
+      return this.ouch != null;
+    }
+
+    public void setOuchIsSet(boolean value) {
+      if (!value) {
+        this.ouch = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((Integer)value);
+        }
+        break;
+
+      case OUCH:
+        if (value == null) {
+          unsetOuch();
+        } else {
+          setOuch((InvalidPalOperation)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
+      case OUCH:
+        return getOuch();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
+      case OUCH:
+        return isSetOuch();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof pal_port_enable_result)
+        return this.equals((pal_port_enable_result)that);
+      return false;
+    }
+
+    public boolean equals(pal_port_enable_result that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_success = true;
+      boolean that_present_success = true;
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (this.success != that.success)
+          return false;
+      }
+
+      boolean this_present_ouch = true && this.isSetOuch();
+      boolean that_present_ouch = true && that.isSetOuch();
+      if (this_present_ouch || that_present_ouch) {
+        if (!(this_present_ouch && that_present_ouch))
+          return false;
+        if (!this.ouch.equals(that.ouch))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + success;
+
+      hashCode = hashCode * 8191 + ((isSetOuch()) ? 131071 : 524287);
+      if (isSetOuch())
+        hashCode = hashCode * 8191 + ouch.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(pal_port_enable_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetOuch()).compareTo(other.isSetOuch());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetOuch()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch, other.ouch);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+      }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("pal_port_enable_result(");
+      boolean first = true;
+
+      sb.append("success:");
+      sb.append(this.success);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ouch:");
+      if (this.ouch == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ouch);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class pal_port_enable_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_enable_resultStandardScheme getScheme() {
+        return new pal_port_enable_resultStandardScheme();
+      }
+    }
+
+    private static class pal_port_enable_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<pal_port_enable_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, pal_port_enable_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.success = iprot.readI32();
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 1: // OUCH
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ouch = new InvalidPalOperation();
+                struct.ouch.read(iprot);
+                struct.setOuchIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, pal_port_enable_result struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.isSetSuccess()) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          oprot.writeI32(struct.success);
+          oprot.writeFieldEnd();
+        }
+        if (struct.ouch != null) {
+          oprot.writeFieldBegin(OUCH_FIELD_DESC);
+          struct.ouch.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class pal_port_enable_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_enable_resultTupleScheme getScheme() {
+        return new pal_port_enable_resultTupleScheme();
+      }
+    }
+
+    private static class pal_port_enable_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<pal_port_enable_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, pal_port_enable_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetSuccess()) {
+          optionals.set(0);
+        }
+        if (struct.isSetOuch()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetSuccess()) {
+          oprot.writeI32(struct.success);
+        }
+        if (struct.isSetOuch()) {
+          struct.ouch.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, pal_port_enable_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          struct.success = iprot.readI32();
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.ouch = new InvalidPalOperation();
+          struct.ouch.read(iprot);
+          struct.setOuchIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class pal_port_enable_all_args implements org.apache.thrift.TBase<pal_port_enable_all_args, pal_port_enable_all_args._Fields>, java.io.Serializable, Cloneable, Comparable<pal_port_enable_all_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pal_port_enable_all_args");
+
+    private static final org.apache.thrift.protocol.TField DEVICE_FIELD_DESC = new org.apache.thrift.protocol.TField("device", org.apache.thrift.protocol.TType.BYTE, (short)1);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new pal_port_enable_all_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pal_port_enable_all_argsTupleSchemeFactory();
+
+    public byte device; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      DEVICE((short)1, "device");
+
+      private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // DEVICE
+            return DEVICE;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __DEVICE_ISSET_ID = 0;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.DEVICE, new org.apache.thrift.meta_data.FieldMetaData("device", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BYTE          , "pal_device_t")));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pal_port_enable_all_args.class, metaDataMap);
+    }
+
+    public pal_port_enable_all_args() {
+    }
+
+    public pal_port_enable_all_args(
+      byte device)
+    {
+      this();
+      this.device = device;
+      setDeviceIsSet(true);
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public pal_port_enable_all_args(pal_port_enable_all_args other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.device = other.device;
+    }
+
+    public pal_port_enable_all_args deepCopy() {
+      return new pal_port_enable_all_args(this);
+    }
+
+    @Override
+    public void clear() {
+      setDeviceIsSet(false);
+      this.device = 0;
+    }
+
+    public byte getDevice() {
+      return this.device;
+    }
+
+    public pal_port_enable_all_args setDevice(byte device) {
+      this.device = device;
+      setDeviceIsSet(true);
+      return this;
+    }
+
+    public void unsetDevice() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DEVICE_ISSET_ID);
+    }
+
+    /** Returns true if field device is set (has been assigned a value) and false otherwise */
+    public boolean isSetDevice() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DEVICE_ISSET_ID);
+    }
+
+    public void setDeviceIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DEVICE_ISSET_ID, value);
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case DEVICE:
+        if (value == null) {
+          unsetDevice();
+        } else {
+          setDevice((Byte)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case DEVICE:
+        return getDevice();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case DEVICE:
+        return isSetDevice();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof pal_port_enable_all_args)
+        return this.equals((pal_port_enable_all_args)that);
+      return false;
+    }
+
+    public boolean equals(pal_port_enable_all_args that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_device = true;
+      boolean that_present_device = true;
+      if (this_present_device || that_present_device) {
+        if (!(this_present_device && that_present_device))
+          return false;
+        if (this.device != that.device)
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + (int) (device);
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(pal_port_enable_all_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetDevice()).compareTo(other.isSetDevice());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetDevice()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.device, other.device);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+    }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("pal_port_enable_all_args(");
+      boolean first = true;
+
+      sb.append("device:");
+      sb.append(this.device);
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class pal_port_enable_all_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_enable_all_argsStandardScheme getScheme() {
+        return new pal_port_enable_all_argsStandardScheme();
+      }
+    }
+
+    private static class pal_port_enable_all_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<pal_port_enable_all_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, pal_port_enable_all_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // DEVICE
+              if (schemeField.type == org.apache.thrift.protocol.TType.BYTE) {
+                struct.device = iprot.readByte();
+                struct.setDeviceIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, pal_port_enable_all_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        oprot.writeFieldBegin(DEVICE_FIELD_DESC);
+        oprot.writeByte(struct.device);
+        oprot.writeFieldEnd();
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class pal_port_enable_all_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_enable_all_argsTupleScheme getScheme() {
+        return new pal_port_enable_all_argsTupleScheme();
+      }
+    }
+
+    private static class pal_port_enable_all_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<pal_port_enable_all_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, pal_port_enable_all_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetDevice()) {
+          optionals.set(0);
+        }
+        oprot.writeBitSet(optionals, 1);
+        if (struct.isSetDevice()) {
+          oprot.writeByte(struct.device);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, pal_port_enable_all_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(1);
+        if (incoming.get(0)) {
+          struct.device = iprot.readByte();
+          struct.setDeviceIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class pal_port_enable_all_result implements org.apache.thrift.TBase<pal_port_enable_all_result, pal_port_enable_all_result._Fields>, java.io.Serializable, Cloneable, Comparable<pal_port_enable_all_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pal_port_enable_all_result");
+
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.I32, (short)0);
+    private static final org.apache.thrift.protocol.TField OUCH_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new pal_port_enable_all_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pal_port_enable_all_resultTupleSchemeFactory();
+
+    public int success; // required
+    public InvalidPalOperation ouch; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      SUCCESS((short)0, "success"),
+      OUCH((short)1, "ouch");
+
+      private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
+          case 1: // OUCH
+            return OUCH;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __SUCCESS_ISSET_ID = 0;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32          , "pal_status_t")));
+      tmpMap.put(_Fields.OUCH, new org.apache.thrift.meta_data.FieldMetaData("ouch", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidPalOperation.class)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pal_port_enable_all_result.class, metaDataMap);
+    }
+
+    public pal_port_enable_all_result() {
+    }
+
+    public pal_port_enable_all_result(
+      int success,
+      InvalidPalOperation ouch)
+    {
+      this();
+      this.success = success;
+      setSuccessIsSet(true);
+      this.ouch = ouch;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public pal_port_enable_all_result(pal_port_enable_all_result other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.success = other.success;
+      if (other.isSetOuch()) {
+        this.ouch = new InvalidPalOperation(other.ouch);
+      }
+    }
+
+    public pal_port_enable_all_result deepCopy() {
+      return new pal_port_enable_all_result(this);
+    }
+
+    @Override
+    public void clear() {
+      setSuccessIsSet(false);
+      this.success = 0;
+      this.ouch = null;
+    }
+
+    public int getSuccess() {
+      return this.success;
+    }
+
+    public pal_port_enable_all_result setSuccess(int success) {
+      this.success = success;
+      setSuccessIsSet(true);
+      return this;
+    }
+
+    public void unsetSuccess() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
+    }
+
+    public InvalidPalOperation getOuch() {
+      return this.ouch;
+    }
+
+    public pal_port_enable_all_result setOuch(InvalidPalOperation ouch) {
+      this.ouch = ouch;
+      return this;
+    }
+
+    public void unsetOuch() {
+      this.ouch = null;
+    }
+
+    /** Returns true if field ouch is set (has been assigned a value) and false otherwise */
+    public boolean isSetOuch() {
+      return this.ouch != null;
+    }
+
+    public void setOuchIsSet(boolean value) {
+      if (!value) {
+        this.ouch = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((Integer)value);
+        }
+        break;
+
+      case OUCH:
+        if (value == null) {
+          unsetOuch();
+        } else {
+          setOuch((InvalidPalOperation)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
+      case OUCH:
+        return getOuch();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
+      case OUCH:
+        return isSetOuch();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof pal_port_enable_all_result)
+        return this.equals((pal_port_enable_all_result)that);
+      return false;
+    }
+
+    public boolean equals(pal_port_enable_all_result that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_success = true;
+      boolean that_present_success = true;
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (this.success != that.success)
+          return false;
+      }
+
+      boolean this_present_ouch = true && this.isSetOuch();
+      boolean that_present_ouch = true && that.isSetOuch();
+      if (this_present_ouch || that_present_ouch) {
+        if (!(this_present_ouch && that_present_ouch))
+          return false;
+        if (!this.ouch.equals(that.ouch))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + success;
+
+      hashCode = hashCode * 8191 + ((isSetOuch()) ? 131071 : 524287);
+      if (isSetOuch())
+        hashCode = hashCode * 8191 + ouch.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(pal_port_enable_all_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetOuch()).compareTo(other.isSetOuch());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetOuch()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch, other.ouch);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+      }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("pal_port_enable_all_result(");
+      boolean first = true;
+
+      sb.append("success:");
+      sb.append(this.success);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ouch:");
+      if (this.ouch == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ouch);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class pal_port_enable_all_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_enable_all_resultStandardScheme getScheme() {
+        return new pal_port_enable_all_resultStandardScheme();
+      }
+    }
+
+    private static class pal_port_enable_all_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<pal_port_enable_all_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, pal_port_enable_all_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.success = iprot.readI32();
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 1: // OUCH
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ouch = new InvalidPalOperation();
+                struct.ouch.read(iprot);
+                struct.setOuchIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, pal_port_enable_all_result struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.isSetSuccess()) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          oprot.writeI32(struct.success);
+          oprot.writeFieldEnd();
+        }
+        if (struct.ouch != null) {
+          oprot.writeFieldBegin(OUCH_FIELD_DESC);
+          struct.ouch.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class pal_port_enable_all_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_enable_all_resultTupleScheme getScheme() {
+        return new pal_port_enable_all_resultTupleScheme();
+      }
+    }
+
+    private static class pal_port_enable_all_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<pal_port_enable_all_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, pal_port_enable_all_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetSuccess()) {
+          optionals.set(0);
+        }
+        if (struct.isSetOuch()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetSuccess()) {
+          oprot.writeI32(struct.success);
+        }
+        if (struct.isSetOuch()) {
+          struct.ouch.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, pal_port_enable_all_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          struct.success = iprot.readI32();
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.ouch = new InvalidPalOperation();
+          struct.ouch.read(iprot);
+          struct.setOuchIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class pal_port_dis_args implements org.apache.thrift.TBase<pal_port_dis_args, pal_port_dis_args._Fields>, java.io.Serializable, Cloneable, Comparable<pal_port_dis_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pal_port_dis_args");
+
+    private static final org.apache.thrift.protocol.TField DEVICE_FIELD_DESC = new org.apache.thrift.protocol.TField("device", org.apache.thrift.protocol.TType.BYTE, (short)1);
+    private static final org.apache.thrift.protocol.TField DEV_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("dev_port", org.apache.thrift.protocol.TType.I32, (short)2);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new pal_port_dis_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pal_port_dis_argsTupleSchemeFactory();
+
+    public byte device; // required
+    public int dev_port; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      DEVICE((short)1, "device"),
+      DEV_PORT((short)2, "dev_port");
+
+      private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // DEVICE
+            return DEVICE;
+          case 2: // DEV_PORT
+            return DEV_PORT;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __DEVICE_ISSET_ID = 0;
+    private static final int __DEV_PORT_ISSET_ID = 1;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.DEVICE, new org.apache.thrift.meta_data.FieldMetaData("device", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BYTE          , "pal_device_t")));
+      tmpMap.put(_Fields.DEV_PORT, new org.apache.thrift.meta_data.FieldMetaData("dev_port", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32          , "pal_dev_port_t")));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pal_port_dis_args.class, metaDataMap);
+    }
+
+    public pal_port_dis_args() {
+    }
+
+    public pal_port_dis_args(
+      byte device,
+      int dev_port)
+    {
+      this();
+      this.device = device;
+      setDeviceIsSet(true);
+      this.dev_port = dev_port;
+      setDev_portIsSet(true);
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public pal_port_dis_args(pal_port_dis_args other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.device = other.device;
+      this.dev_port = other.dev_port;
+    }
+
+    public pal_port_dis_args deepCopy() {
+      return new pal_port_dis_args(this);
+    }
+
+    @Override
+    public void clear() {
+      setDeviceIsSet(false);
+      this.device = 0;
+      setDev_portIsSet(false);
+      this.dev_port = 0;
+    }
+
+    public byte getDevice() {
+      return this.device;
+    }
+
+    public pal_port_dis_args setDevice(byte device) {
+      this.device = device;
+      setDeviceIsSet(true);
+      return this;
+    }
+
+    public void unsetDevice() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DEVICE_ISSET_ID);
+    }
+
+    /** Returns true if field device is set (has been assigned a value) and false otherwise */
+    public boolean isSetDevice() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DEVICE_ISSET_ID);
+    }
+
+    public void setDeviceIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DEVICE_ISSET_ID, value);
+    }
+
+    public int getDev_port() {
+      return this.dev_port;
+    }
+
+    public pal_port_dis_args setDev_port(int dev_port) {
+      this.dev_port = dev_port;
+      setDev_portIsSet(true);
+      return this;
+    }
+
+    public void unsetDev_port() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DEV_PORT_ISSET_ID);
+    }
+
+    /** Returns true if field dev_port is set (has been assigned a value) and false otherwise */
+    public boolean isSetDev_port() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DEV_PORT_ISSET_ID);
+    }
+
+    public void setDev_portIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DEV_PORT_ISSET_ID, value);
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case DEVICE:
+        if (value == null) {
+          unsetDevice();
+        } else {
+          setDevice((Byte)value);
+        }
+        break;
+
+      case DEV_PORT:
+        if (value == null) {
+          unsetDev_port();
+        } else {
+          setDev_port((Integer)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case DEVICE:
+        return getDevice();
+
+      case DEV_PORT:
+        return getDev_port();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case DEVICE:
+        return isSetDevice();
+      case DEV_PORT:
+        return isSetDev_port();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof pal_port_dis_args)
+        return this.equals((pal_port_dis_args)that);
+      return false;
+    }
+
+    public boolean equals(pal_port_dis_args that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_device = true;
+      boolean that_present_device = true;
+      if (this_present_device || that_present_device) {
+        if (!(this_present_device && that_present_device))
+          return false;
+        if (this.device != that.device)
+          return false;
+      }
+
+      boolean this_present_dev_port = true;
+      boolean that_present_dev_port = true;
+      if (this_present_dev_port || that_present_dev_port) {
+        if (!(this_present_dev_port && that_present_dev_port))
+          return false;
+        if (this.dev_port != that.dev_port)
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + (int) (device);
+
+      hashCode = hashCode * 8191 + dev_port;
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(pal_port_dis_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetDevice()).compareTo(other.isSetDevice());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetDevice()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.device, other.device);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetDev_port()).compareTo(other.isSetDev_port());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetDev_port()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dev_port, other.dev_port);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+    }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("pal_port_dis_args(");
+      boolean first = true;
+
+      sb.append("device:");
+      sb.append(this.device);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("dev_port:");
+      sb.append(this.dev_port);
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class pal_port_dis_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_dis_argsStandardScheme getScheme() {
+        return new pal_port_dis_argsStandardScheme();
+      }
+    }
+
+    private static class pal_port_dis_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<pal_port_dis_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, pal_port_dis_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // DEVICE
+              if (schemeField.type == org.apache.thrift.protocol.TType.BYTE) {
+                struct.device = iprot.readByte();
+                struct.setDeviceIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // DEV_PORT
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.dev_port = iprot.readI32();
+                struct.setDev_portIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, pal_port_dis_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        oprot.writeFieldBegin(DEVICE_FIELD_DESC);
+        oprot.writeByte(struct.device);
+        oprot.writeFieldEnd();
+        oprot.writeFieldBegin(DEV_PORT_FIELD_DESC);
+        oprot.writeI32(struct.dev_port);
+        oprot.writeFieldEnd();
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class pal_port_dis_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_dis_argsTupleScheme getScheme() {
+        return new pal_port_dis_argsTupleScheme();
+      }
+    }
+
+    private static class pal_port_dis_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<pal_port_dis_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, pal_port_dis_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetDevice()) {
+          optionals.set(0);
+        }
+        if (struct.isSetDev_port()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetDevice()) {
+          oprot.writeByte(struct.device);
+        }
+        if (struct.isSetDev_port()) {
+          oprot.writeI32(struct.dev_port);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, pal_port_dis_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          struct.device = iprot.readByte();
+          struct.setDeviceIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.dev_port = iprot.readI32();
+          struct.setDev_portIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class pal_port_dis_result implements org.apache.thrift.TBase<pal_port_dis_result, pal_port_dis_result._Fields>, java.io.Serializable, Cloneable, Comparable<pal_port_dis_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pal_port_dis_result");
+
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.I32, (short)0);
+    private static final org.apache.thrift.protocol.TField OUCH_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new pal_port_dis_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pal_port_dis_resultTupleSchemeFactory();
+
+    public int success; // required
+    public InvalidPalOperation ouch; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      SUCCESS((short)0, "success"),
+      OUCH((short)1, "ouch");
+
+      private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
+          case 1: // OUCH
+            return OUCH;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __SUCCESS_ISSET_ID = 0;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32          , "pal_status_t")));
+      tmpMap.put(_Fields.OUCH, new org.apache.thrift.meta_data.FieldMetaData("ouch", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidPalOperation.class)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pal_port_dis_result.class, metaDataMap);
+    }
+
+    public pal_port_dis_result() {
+    }
+
+    public pal_port_dis_result(
+      int success,
+      InvalidPalOperation ouch)
+    {
+      this();
+      this.success = success;
+      setSuccessIsSet(true);
+      this.ouch = ouch;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public pal_port_dis_result(pal_port_dis_result other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.success = other.success;
+      if (other.isSetOuch()) {
+        this.ouch = new InvalidPalOperation(other.ouch);
+      }
+    }
+
+    public pal_port_dis_result deepCopy() {
+      return new pal_port_dis_result(this);
+    }
+
+    @Override
+    public void clear() {
+      setSuccessIsSet(false);
+      this.success = 0;
+      this.ouch = null;
+    }
+
+    public int getSuccess() {
+      return this.success;
+    }
+
+    public pal_port_dis_result setSuccess(int success) {
+      this.success = success;
+      setSuccessIsSet(true);
+      return this;
+    }
+
+    public void unsetSuccess() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
+    }
+
+    public InvalidPalOperation getOuch() {
+      return this.ouch;
+    }
+
+    public pal_port_dis_result setOuch(InvalidPalOperation ouch) {
+      this.ouch = ouch;
+      return this;
+    }
+
+    public void unsetOuch() {
+      this.ouch = null;
+    }
+
+    /** Returns true if field ouch is set (has been assigned a value) and false otherwise */
+    public boolean isSetOuch() {
+      return this.ouch != null;
+    }
+
+    public void setOuchIsSet(boolean value) {
+      if (!value) {
+        this.ouch = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((Integer)value);
+        }
+        break;
+
+      case OUCH:
+        if (value == null) {
+          unsetOuch();
+        } else {
+          setOuch((InvalidPalOperation)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
+      case OUCH:
+        return getOuch();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
+      case OUCH:
+        return isSetOuch();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof pal_port_dis_result)
+        return this.equals((pal_port_dis_result)that);
+      return false;
+    }
+
+    public boolean equals(pal_port_dis_result that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_success = true;
+      boolean that_present_success = true;
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (this.success != that.success)
+          return false;
+      }
+
+      boolean this_present_ouch = true && this.isSetOuch();
+      boolean that_present_ouch = true && that.isSetOuch();
+      if (this_present_ouch || that_present_ouch) {
+        if (!(this_present_ouch && that_present_ouch))
+          return false;
+        if (!this.ouch.equals(that.ouch))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + success;
+
+      hashCode = hashCode * 8191 + ((isSetOuch()) ? 131071 : 524287);
+      if (isSetOuch())
+        hashCode = hashCode * 8191 + ouch.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(pal_port_dis_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetOuch()).compareTo(other.isSetOuch());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetOuch()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch, other.ouch);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+      }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("pal_port_dis_result(");
+      boolean first = true;
+
+      sb.append("success:");
+      sb.append(this.success);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ouch:");
+      if (this.ouch == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ouch);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class pal_port_dis_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_dis_resultStandardScheme getScheme() {
+        return new pal_port_dis_resultStandardScheme();
+      }
+    }
+
+    private static class pal_port_dis_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<pal_port_dis_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, pal_port_dis_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.success = iprot.readI32();
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 1: // OUCH
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ouch = new InvalidPalOperation();
+                struct.ouch.read(iprot);
+                struct.setOuchIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, pal_port_dis_result struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.isSetSuccess()) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          oprot.writeI32(struct.success);
+          oprot.writeFieldEnd();
+        }
+        if (struct.ouch != null) {
+          oprot.writeFieldBegin(OUCH_FIELD_DESC);
+          struct.ouch.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class pal_port_dis_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_dis_resultTupleScheme getScheme() {
+        return new pal_port_dis_resultTupleScheme();
+      }
+    }
+
+    private static class pal_port_dis_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<pal_port_dis_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, pal_port_dis_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetSuccess()) {
+          optionals.set(0);
+        }
+        if (struct.isSetOuch()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetSuccess()) {
+          oprot.writeI32(struct.success);
+        }
+        if (struct.isSetOuch()) {
+          struct.ouch.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, pal_port_dis_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          struct.success = iprot.readI32();
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.ouch = new InvalidPalOperation();
+          struct.ouch.read(iprot);
+          struct.setOuchIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class pal_port_oper_status_get_args implements org.apache.thrift.TBase<pal_port_oper_status_get_args, pal_port_oper_status_get_args._Fields>, java.io.Serializable, Cloneable, Comparable<pal_port_oper_status_get_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pal_port_oper_status_get_args");
+
+    private static final org.apache.thrift.protocol.TField DEVICE_FIELD_DESC = new org.apache.thrift.protocol.TField("device", org.apache.thrift.protocol.TType.BYTE, (short)1);
+    private static final org.apache.thrift.protocol.TField DEV_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("dev_port", org.apache.thrift.protocol.TType.I32, (short)2);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new pal_port_oper_status_get_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pal_port_oper_status_get_argsTupleSchemeFactory();
+
+    public byte device; // required
+    public int dev_port; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      DEVICE((short)1, "device"),
+      DEV_PORT((short)2, "dev_port");
+
+      private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // DEVICE
+            return DEVICE;
+          case 2: // DEV_PORT
+            return DEV_PORT;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __DEVICE_ISSET_ID = 0;
+    private static final int __DEV_PORT_ISSET_ID = 1;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.DEVICE, new org.apache.thrift.meta_data.FieldMetaData("device", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BYTE          , "pal_device_t")));
+      tmpMap.put(_Fields.DEV_PORT, new org.apache.thrift.meta_data.FieldMetaData("dev_port", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32          , "pal_dev_port_t")));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pal_port_oper_status_get_args.class, metaDataMap);
+    }
+
+    public pal_port_oper_status_get_args() {
+    }
+
+    public pal_port_oper_status_get_args(
+      byte device,
+      int dev_port)
+    {
+      this();
+      this.device = device;
+      setDeviceIsSet(true);
+      this.dev_port = dev_port;
+      setDev_portIsSet(true);
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public pal_port_oper_status_get_args(pal_port_oper_status_get_args other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.device = other.device;
+      this.dev_port = other.dev_port;
+    }
+
+    public pal_port_oper_status_get_args deepCopy() {
+      return new pal_port_oper_status_get_args(this);
+    }
+
+    @Override
+    public void clear() {
+      setDeviceIsSet(false);
+      this.device = 0;
+      setDev_portIsSet(false);
+      this.dev_port = 0;
+    }
+
+    public byte getDevice() {
+      return this.device;
+    }
+
+    public pal_port_oper_status_get_args setDevice(byte device) {
+      this.device = device;
+      setDeviceIsSet(true);
+      return this;
+    }
+
+    public void unsetDevice() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DEVICE_ISSET_ID);
+    }
+
+    /** Returns true if field device is set (has been assigned a value) and false otherwise */
+    public boolean isSetDevice() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DEVICE_ISSET_ID);
+    }
+
+    public void setDeviceIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DEVICE_ISSET_ID, value);
+    }
+
+    public int getDev_port() {
+      return this.dev_port;
+    }
+
+    public pal_port_oper_status_get_args setDev_port(int dev_port) {
+      this.dev_port = dev_port;
+      setDev_portIsSet(true);
+      return this;
+    }
+
+    public void unsetDev_port() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DEV_PORT_ISSET_ID);
+    }
+
+    /** Returns true if field dev_port is set (has been assigned a value) and false otherwise */
+    public boolean isSetDev_port() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DEV_PORT_ISSET_ID);
+    }
+
+    public void setDev_portIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DEV_PORT_ISSET_ID, value);
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case DEVICE:
+        if (value == null) {
+          unsetDevice();
+        } else {
+          setDevice((Byte)value);
+        }
+        break;
+
+      case DEV_PORT:
+        if (value == null) {
+          unsetDev_port();
+        } else {
+          setDev_port((Integer)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case DEVICE:
+        return getDevice();
+
+      case DEV_PORT:
+        return getDev_port();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case DEVICE:
+        return isSetDevice();
+      case DEV_PORT:
+        return isSetDev_port();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof pal_port_oper_status_get_args)
+        return this.equals((pal_port_oper_status_get_args)that);
+      return false;
+    }
+
+    public boolean equals(pal_port_oper_status_get_args that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_device = true;
+      boolean that_present_device = true;
+      if (this_present_device || that_present_device) {
+        if (!(this_present_device && that_present_device))
+          return false;
+        if (this.device != that.device)
+          return false;
+      }
+
+      boolean this_present_dev_port = true;
+      boolean that_present_dev_port = true;
+      if (this_present_dev_port || that_present_dev_port) {
+        if (!(this_present_dev_port && that_present_dev_port))
+          return false;
+        if (this.dev_port != that.dev_port)
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + (int) (device);
+
+      hashCode = hashCode * 8191 + dev_port;
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(pal_port_oper_status_get_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetDevice()).compareTo(other.isSetDevice());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetDevice()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.device, other.device);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetDev_port()).compareTo(other.isSetDev_port());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetDev_port()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dev_port, other.dev_port);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+    }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("pal_port_oper_status_get_args(");
+      boolean first = true;
+
+      sb.append("device:");
+      sb.append(this.device);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("dev_port:");
+      sb.append(this.dev_port);
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class pal_port_oper_status_get_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_oper_status_get_argsStandardScheme getScheme() {
+        return new pal_port_oper_status_get_argsStandardScheme();
+      }
+    }
+
+    private static class pal_port_oper_status_get_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<pal_port_oper_status_get_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, pal_port_oper_status_get_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // DEVICE
+              if (schemeField.type == org.apache.thrift.protocol.TType.BYTE) {
+                struct.device = iprot.readByte();
+                struct.setDeviceIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // DEV_PORT
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.dev_port = iprot.readI32();
+                struct.setDev_portIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, pal_port_oper_status_get_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        oprot.writeFieldBegin(DEVICE_FIELD_DESC);
+        oprot.writeByte(struct.device);
+        oprot.writeFieldEnd();
+        oprot.writeFieldBegin(DEV_PORT_FIELD_DESC);
+        oprot.writeI32(struct.dev_port);
+        oprot.writeFieldEnd();
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class pal_port_oper_status_get_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_oper_status_get_argsTupleScheme getScheme() {
+        return new pal_port_oper_status_get_argsTupleScheme();
+      }
+    }
+
+    private static class pal_port_oper_status_get_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<pal_port_oper_status_get_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, pal_port_oper_status_get_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetDevice()) {
+          optionals.set(0);
+        }
+        if (struct.isSetDev_port()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetDevice()) {
+          oprot.writeByte(struct.device);
+        }
+        if (struct.isSetDev_port()) {
+          oprot.writeI32(struct.dev_port);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, pal_port_oper_status_get_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          struct.device = iprot.readByte();
+          struct.setDeviceIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.dev_port = iprot.readI32();
+          struct.setDev_portIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class pal_port_oper_status_get_result implements org.apache.thrift.TBase<pal_port_oper_status_get_result, pal_port_oper_status_get_result._Fields>, java.io.Serializable, Cloneable, Comparable<pal_port_oper_status_get_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pal_port_oper_status_get_result");
+
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.I32, (short)0);
+    private static final org.apache.thrift.protocol.TField OUCH_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new pal_port_oper_status_get_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pal_port_oper_status_get_resultTupleSchemeFactory();
+
+    /**
+     * 
+     * @see pal_oper_status_t
+     */
+    public pal_oper_status_t success; // required
+    public InvalidPalOperation ouch; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      /**
+       * 
+       * @see pal_oper_status_t
+       */
+      SUCCESS((short)0, "success"),
+      OUCH((short)1, "ouch");
+
+      private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
+          case 1: // OUCH
+            return OUCH;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, pal_oper_status_t.class)));
+      tmpMap.put(_Fields.OUCH, new org.apache.thrift.meta_data.FieldMetaData("ouch", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidPalOperation.class)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pal_port_oper_status_get_result.class, metaDataMap);
+    }
+
+    public pal_port_oper_status_get_result() {
+    }
+
+    public pal_port_oper_status_get_result(
+      pal_oper_status_t success,
+      InvalidPalOperation ouch)
+    {
+      this();
+      this.success = success;
+      this.ouch = ouch;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public pal_port_oper_status_get_result(pal_port_oper_status_get_result other) {
+      if (other.isSetSuccess()) {
+        this.success = other.success;
+      }
+      if (other.isSetOuch()) {
+        this.ouch = new InvalidPalOperation(other.ouch);
+      }
+    }
+
+    public pal_port_oper_status_get_result deepCopy() {
+      return new pal_port_oper_status_get_result(this);
+    }
+
+    @Override
+    public void clear() {
+      this.success = null;
+      this.ouch = null;
+    }
+
+    /**
+     * 
+     * @see pal_oper_status_t
+     */
+    public pal_oper_status_t getSuccess() {
+      return this.success;
+    }
+
+    /**
+     * 
+     * @see pal_oper_status_t
+     */
+    public pal_port_oper_status_get_result setSuccess(pal_oper_status_t success) {
+      this.success = success;
+      return this;
+    }
+
+    public void unsetSuccess() {
+      this.success = null;
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return this.success != null;
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      if (!value) {
+        this.success = null;
+      }
+    }
+
+    public InvalidPalOperation getOuch() {
+      return this.ouch;
+    }
+
+    public pal_port_oper_status_get_result setOuch(InvalidPalOperation ouch) {
+      this.ouch = ouch;
+      return this;
+    }
+
+    public void unsetOuch() {
+      this.ouch = null;
+    }
+
+    /** Returns true if field ouch is set (has been assigned a value) and false otherwise */
+    public boolean isSetOuch() {
+      return this.ouch != null;
+    }
+
+    public void setOuchIsSet(boolean value) {
+      if (!value) {
+        this.ouch = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((pal_oper_status_t)value);
+        }
+        break;
+
+      case OUCH:
+        if (value == null) {
+          unsetOuch();
+        } else {
+          setOuch((InvalidPalOperation)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
+      case OUCH:
+        return getOuch();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
+      case OUCH:
+        return isSetOuch();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof pal_port_oper_status_get_result)
+        return this.equals((pal_port_oper_status_get_result)that);
+      return false;
+    }
+
+    public boolean equals(pal_port_oper_status_get_result that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_success = true && this.isSetSuccess();
+      boolean that_present_success = true && that.isSetSuccess();
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (!this.success.equals(that.success))
+          return false;
+      }
+
+      boolean this_present_ouch = true && this.isSetOuch();
+      boolean that_present_ouch = true && that.isSetOuch();
+      if (this_present_ouch || that_present_ouch) {
+        if (!(this_present_ouch && that_present_ouch))
+          return false;
+        if (!this.ouch.equals(that.ouch))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
+      if (isSetSuccess())
+        hashCode = hashCode * 8191 + success.getValue();
+
+      hashCode = hashCode * 8191 + ((isSetOuch()) ? 131071 : 524287);
+      if (isSetOuch())
+        hashCode = hashCode * 8191 + ouch.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(pal_port_oper_status_get_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetOuch()).compareTo(other.isSetOuch());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetOuch()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch, other.ouch);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+      }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("pal_port_oper_status_get_result(");
+      boolean first = true;
+
+      sb.append("success:");
+      if (this.success == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.success);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ouch:");
+      if (this.ouch == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ouch);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class pal_port_oper_status_get_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_oper_status_get_resultStandardScheme getScheme() {
+        return new pal_port_oper_status_get_resultStandardScheme();
+      }
+    }
+
+    private static class pal_port_oper_status_get_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<pal_port_oper_status_get_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, pal_port_oper_status_get_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.success = pal_oper_status_t.findByValue(iprot.readI32());
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 1: // OUCH
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ouch = new InvalidPalOperation();
+                struct.ouch.read(iprot);
+                struct.setOuchIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, pal_port_oper_status_get_result struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.success != null) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          oprot.writeI32(struct.success.getValue());
+          oprot.writeFieldEnd();
+        }
+        if (struct.ouch != null) {
+          oprot.writeFieldBegin(OUCH_FIELD_DESC);
+          struct.ouch.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class pal_port_oper_status_get_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_oper_status_get_resultTupleScheme getScheme() {
+        return new pal_port_oper_status_get_resultTupleScheme();
+      }
+    }
+
+    private static class pal_port_oper_status_get_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<pal_port_oper_status_get_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, pal_port_oper_status_get_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetSuccess()) {
+          optionals.set(0);
+        }
+        if (struct.isSetOuch()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetSuccess()) {
+          oprot.writeI32(struct.success.getValue());
+        }
+        if (struct.isSetOuch()) {
+          struct.ouch.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, pal_port_oper_status_get_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          struct.success = pal_oper_status_t.findByValue(iprot.readI32());
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.ouch = new InvalidPalOperation();
+          struct.ouch.read(iprot);
+          struct.setOuchIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class pal_port_is_valid_args implements org.apache.thrift.TBase<pal_port_is_valid_args, pal_port_is_valid_args._Fields>, java.io.Serializable, Cloneable, Comparable<pal_port_is_valid_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pal_port_is_valid_args");
+
+    private static final org.apache.thrift.protocol.TField DEVICE_FIELD_DESC = new org.apache.thrift.protocol.TField("device", org.apache.thrift.protocol.TType.BYTE, (short)1);
+    private static final org.apache.thrift.protocol.TField DEV_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("dev_port", org.apache.thrift.protocol.TType.I32, (short)2);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new pal_port_is_valid_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pal_port_is_valid_argsTupleSchemeFactory();
+
+    public byte device; // required
+    public int dev_port; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      DEVICE((short)1, "device"),
+      DEV_PORT((short)2, "dev_port");
+
+      private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // DEVICE
+            return DEVICE;
+          case 2: // DEV_PORT
+            return DEV_PORT;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __DEVICE_ISSET_ID = 0;
+    private static final int __DEV_PORT_ISSET_ID = 1;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.DEVICE, new org.apache.thrift.meta_data.FieldMetaData("device", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BYTE          , "pal_device_t")));
+      tmpMap.put(_Fields.DEV_PORT, new org.apache.thrift.meta_data.FieldMetaData("dev_port", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32          , "pal_dev_port_t")));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pal_port_is_valid_args.class, metaDataMap);
+    }
+
+    public pal_port_is_valid_args() {
+    }
+
+    public pal_port_is_valid_args(
+      byte device,
+      int dev_port)
+    {
+      this();
+      this.device = device;
+      setDeviceIsSet(true);
+      this.dev_port = dev_port;
+      setDev_portIsSet(true);
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public pal_port_is_valid_args(pal_port_is_valid_args other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.device = other.device;
+      this.dev_port = other.dev_port;
+    }
+
+    public pal_port_is_valid_args deepCopy() {
+      return new pal_port_is_valid_args(this);
+    }
+
+    @Override
+    public void clear() {
+      setDeviceIsSet(false);
+      this.device = 0;
+      setDev_portIsSet(false);
+      this.dev_port = 0;
+    }
+
+    public byte getDevice() {
+      return this.device;
+    }
+
+    public pal_port_is_valid_args setDevice(byte device) {
+      this.device = device;
+      setDeviceIsSet(true);
+      return this;
+    }
+
+    public void unsetDevice() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DEVICE_ISSET_ID);
+    }
+
+    /** Returns true if field device is set (has been assigned a value) and false otherwise */
+    public boolean isSetDevice() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DEVICE_ISSET_ID);
+    }
+
+    public void setDeviceIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DEVICE_ISSET_ID, value);
+    }
+
+    public int getDev_port() {
+      return this.dev_port;
+    }
+
+    public pal_port_is_valid_args setDev_port(int dev_port) {
+      this.dev_port = dev_port;
+      setDev_portIsSet(true);
+      return this;
+    }
+
+    public void unsetDev_port() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DEV_PORT_ISSET_ID);
+    }
+
+    /** Returns true if field dev_port is set (has been assigned a value) and false otherwise */
+    public boolean isSetDev_port() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DEV_PORT_ISSET_ID);
+    }
+
+    public void setDev_portIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DEV_PORT_ISSET_ID, value);
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case DEVICE:
+        if (value == null) {
+          unsetDevice();
+        } else {
+          setDevice((Byte)value);
+        }
+        break;
+
+      case DEV_PORT:
+        if (value == null) {
+          unsetDev_port();
+        } else {
+          setDev_port((Integer)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case DEVICE:
+        return getDevice();
+
+      case DEV_PORT:
+        return getDev_port();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case DEVICE:
+        return isSetDevice();
+      case DEV_PORT:
+        return isSetDev_port();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof pal_port_is_valid_args)
+        return this.equals((pal_port_is_valid_args)that);
+      return false;
+    }
+
+    public boolean equals(pal_port_is_valid_args that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_device = true;
+      boolean that_present_device = true;
+      if (this_present_device || that_present_device) {
+        if (!(this_present_device && that_present_device))
+          return false;
+        if (this.device != that.device)
+          return false;
+      }
+
+      boolean this_present_dev_port = true;
+      boolean that_present_dev_port = true;
+      if (this_present_dev_port || that_present_dev_port) {
+        if (!(this_present_dev_port && that_present_dev_port))
+          return false;
+        if (this.dev_port != that.dev_port)
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + (int) (device);
+
+      hashCode = hashCode * 8191 + dev_port;
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(pal_port_is_valid_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetDevice()).compareTo(other.isSetDevice());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetDevice()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.device, other.device);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetDev_port()).compareTo(other.isSetDev_port());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetDev_port()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dev_port, other.dev_port);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+    }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("pal_port_is_valid_args(");
+      boolean first = true;
+
+      sb.append("device:");
+      sb.append(this.device);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("dev_port:");
+      sb.append(this.dev_port);
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class pal_port_is_valid_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_is_valid_argsStandardScheme getScheme() {
+        return new pal_port_is_valid_argsStandardScheme();
+      }
+    }
+
+    private static class pal_port_is_valid_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<pal_port_is_valid_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, pal_port_is_valid_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // DEVICE
+              if (schemeField.type == org.apache.thrift.protocol.TType.BYTE) {
+                struct.device = iprot.readByte();
+                struct.setDeviceIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // DEV_PORT
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.dev_port = iprot.readI32();
+                struct.setDev_portIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, pal_port_is_valid_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        oprot.writeFieldBegin(DEVICE_FIELD_DESC);
+        oprot.writeByte(struct.device);
+        oprot.writeFieldEnd();
+        oprot.writeFieldBegin(DEV_PORT_FIELD_DESC);
+        oprot.writeI32(struct.dev_port);
+        oprot.writeFieldEnd();
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class pal_port_is_valid_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_is_valid_argsTupleScheme getScheme() {
+        return new pal_port_is_valid_argsTupleScheme();
+      }
+    }
+
+    private static class pal_port_is_valid_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<pal_port_is_valid_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, pal_port_is_valid_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetDevice()) {
+          optionals.set(0);
+        }
+        if (struct.isSetDev_port()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetDevice()) {
+          oprot.writeByte(struct.device);
+        }
+        if (struct.isSetDev_port()) {
+          oprot.writeI32(struct.dev_port);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, pal_port_is_valid_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          struct.device = iprot.readByte();
+          struct.setDeviceIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.dev_port = iprot.readI32();
+          struct.setDev_portIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class pal_port_is_valid_result implements org.apache.thrift.TBase<pal_port_is_valid_result, pal_port_is_valid_result._Fields>, java.io.Serializable, Cloneable, Comparable<pal_port_is_valid_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pal_port_is_valid_result");
+
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
+    private static final org.apache.thrift.protocol.TField OUCH_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new pal_port_is_valid_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pal_port_is_valid_resultTupleSchemeFactory();
+
+    public boolean success; // required
+    public InvalidPalOperation ouch; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      SUCCESS((short)0, "success"),
+      OUCH((short)1, "ouch");
+
+      private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
+          case 1: // OUCH
+            return OUCH;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __SUCCESS_ISSET_ID = 0;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+      tmpMap.put(_Fields.OUCH, new org.apache.thrift.meta_data.FieldMetaData("ouch", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidPalOperation.class)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pal_port_is_valid_result.class, metaDataMap);
+    }
+
+    public pal_port_is_valid_result() {
+    }
+
+    public pal_port_is_valid_result(
+      boolean success,
+      InvalidPalOperation ouch)
+    {
+      this();
+      this.success = success;
+      setSuccessIsSet(true);
+      this.ouch = ouch;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public pal_port_is_valid_result(pal_port_is_valid_result other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.success = other.success;
+      if (other.isSetOuch()) {
+        this.ouch = new InvalidPalOperation(other.ouch);
+      }
+    }
+
+    public pal_port_is_valid_result deepCopy() {
+      return new pal_port_is_valid_result(this);
+    }
+
+    @Override
+    public void clear() {
+      setSuccessIsSet(false);
+      this.success = false;
+      this.ouch = null;
+    }
+
+    public boolean isSuccess() {
+      return this.success;
+    }
+
+    public pal_port_is_valid_result setSuccess(boolean success) {
+      this.success = success;
+      setSuccessIsSet(true);
+      return this;
+    }
+
+    public void unsetSuccess() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
+    }
+
+    public InvalidPalOperation getOuch() {
+      return this.ouch;
+    }
+
+    public pal_port_is_valid_result setOuch(InvalidPalOperation ouch) {
+      this.ouch = ouch;
+      return this;
+    }
+
+    public void unsetOuch() {
+      this.ouch = null;
+    }
+
+    /** Returns true if field ouch is set (has been assigned a value) and false otherwise */
+    public boolean isSetOuch() {
+      return this.ouch != null;
+    }
+
+    public void setOuchIsSet(boolean value) {
+      if (!value) {
+        this.ouch = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((Boolean)value);
+        }
+        break;
+
+      case OUCH:
+        if (value == null) {
+          unsetOuch();
+        } else {
+          setOuch((InvalidPalOperation)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case SUCCESS:
+        return isSuccess();
+
+      case OUCH:
+        return getOuch();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
+      case OUCH:
+        return isSetOuch();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof pal_port_is_valid_result)
+        return this.equals((pal_port_is_valid_result)that);
+      return false;
+    }
+
+    public boolean equals(pal_port_is_valid_result that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_success = true;
+      boolean that_present_success = true;
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (this.success != that.success)
+          return false;
+      }
+
+      boolean this_present_ouch = true && this.isSetOuch();
+      boolean that_present_ouch = true && that.isSetOuch();
+      if (this_present_ouch || that_present_ouch) {
+        if (!(this_present_ouch && that_present_ouch))
+          return false;
+        if (!this.ouch.equals(that.ouch))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);
+
+      hashCode = hashCode * 8191 + ((isSetOuch()) ? 131071 : 524287);
+      if (isSetOuch())
+        hashCode = hashCode * 8191 + ouch.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(pal_port_is_valid_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetOuch()).compareTo(other.isSetOuch());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetOuch()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch, other.ouch);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+      }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("pal_port_is_valid_result(");
+      boolean first = true;
+
+      sb.append("success:");
+      sb.append(this.success);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ouch:");
+      if (this.ouch == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ouch);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class pal_port_is_valid_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_is_valid_resultStandardScheme getScheme() {
+        return new pal_port_is_valid_resultStandardScheme();
+      }
+    }
+
+    private static class pal_port_is_valid_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<pal_port_is_valid_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, pal_port_is_valid_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+                struct.success = iprot.readBool();
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 1: // OUCH
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ouch = new InvalidPalOperation();
+                struct.ouch.read(iprot);
+                struct.setOuchIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, pal_port_is_valid_result struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.isSetSuccess()) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          oprot.writeBool(struct.success);
+          oprot.writeFieldEnd();
+        }
+        if (struct.ouch != null) {
+          oprot.writeFieldBegin(OUCH_FIELD_DESC);
+          struct.ouch.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class pal_port_is_valid_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_is_valid_resultTupleScheme getScheme() {
+        return new pal_port_is_valid_resultTupleScheme();
+      }
+    }
+
+    private static class pal_port_is_valid_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<pal_port_is_valid_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, pal_port_is_valid_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetSuccess()) {
+          optionals.set(0);
+        }
+        if (struct.isSetOuch()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetSuccess()) {
+          oprot.writeBool(struct.success);
+        }
+        if (struct.isSetOuch()) {
+          struct.ouch.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, pal_port_is_valid_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          struct.success = iprot.readBool();
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.ouch = new InvalidPalOperation();
+          struct.ouch.read(iprot);
+          struct.setOuchIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class pal_port_an_set_args implements org.apache.thrift.TBase<pal_port_an_set_args, pal_port_an_set_args._Fields>, java.io.Serializable, Cloneable, Comparable<pal_port_an_set_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pal_port_an_set_args");
+
+    private static final org.apache.thrift.protocol.TField DEVICE_FIELD_DESC = new org.apache.thrift.protocol.TField("device", org.apache.thrift.protocol.TType.BYTE, (short)1);
+    private static final org.apache.thrift.protocol.TField DEV_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("dev_port", org.apache.thrift.protocol.TType.I32, (short)2);
+    private static final org.apache.thrift.protocol.TField AN_FIELD_DESC = new org.apache.thrift.protocol.TField("an", org.apache.thrift.protocol.TType.I32, (short)3);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new pal_port_an_set_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pal_port_an_set_argsTupleSchemeFactory();
+
+    public byte device; // required
+    public int dev_port; // required
+    /**
+     * 
+     * @see pal_autoneg_policy_t
+     */
+    public pal_autoneg_policy_t an; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      DEVICE((short)1, "device"),
+      DEV_PORT((short)2, "dev_port"),
+      /**
+       * 
+       * @see pal_autoneg_policy_t
+       */
+      AN((short)3, "an");
+
+      private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // DEVICE
+            return DEVICE;
+          case 2: // DEV_PORT
+            return DEV_PORT;
+          case 3: // AN
+            return AN;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __DEVICE_ISSET_ID = 0;
+    private static final int __DEV_PORT_ISSET_ID = 1;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.DEVICE, new org.apache.thrift.meta_data.FieldMetaData("device", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BYTE          , "pal_device_t")));
+      tmpMap.put(_Fields.DEV_PORT, new org.apache.thrift.meta_data.FieldMetaData("dev_port", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32          , "pal_dev_port_t")));
+      tmpMap.put(_Fields.AN, new org.apache.thrift.meta_data.FieldMetaData("an", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, pal_autoneg_policy_t.class)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pal_port_an_set_args.class, metaDataMap);
+    }
+
+    public pal_port_an_set_args() {
+    }
+
+    public pal_port_an_set_args(
+      byte device,
+      int dev_port,
+      pal_autoneg_policy_t an)
+    {
+      this();
+      this.device = device;
+      setDeviceIsSet(true);
+      this.dev_port = dev_port;
+      setDev_portIsSet(true);
+      this.an = an;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public pal_port_an_set_args(pal_port_an_set_args other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.device = other.device;
+      this.dev_port = other.dev_port;
+      if (other.isSetAn()) {
+        this.an = other.an;
+      }
+    }
+
+    public pal_port_an_set_args deepCopy() {
+      return new pal_port_an_set_args(this);
+    }
+
+    @Override
+    public void clear() {
+      setDeviceIsSet(false);
+      this.device = 0;
+      setDev_portIsSet(false);
+      this.dev_port = 0;
+      this.an = null;
+    }
+
+    public byte getDevice() {
+      return this.device;
+    }
+
+    public pal_port_an_set_args setDevice(byte device) {
+      this.device = device;
+      setDeviceIsSet(true);
+      return this;
+    }
+
+    public void unsetDevice() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DEVICE_ISSET_ID);
+    }
+
+    /** Returns true if field device is set (has been assigned a value) and false otherwise */
+    public boolean isSetDevice() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DEVICE_ISSET_ID);
+    }
+
+    public void setDeviceIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DEVICE_ISSET_ID, value);
+    }
+
+    public int getDev_port() {
+      return this.dev_port;
+    }
+
+    public pal_port_an_set_args setDev_port(int dev_port) {
+      this.dev_port = dev_port;
+      setDev_portIsSet(true);
+      return this;
+    }
+
+    public void unsetDev_port() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DEV_PORT_ISSET_ID);
+    }
+
+    /** Returns true if field dev_port is set (has been assigned a value) and false otherwise */
+    public boolean isSetDev_port() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DEV_PORT_ISSET_ID);
+    }
+
+    public void setDev_portIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DEV_PORT_ISSET_ID, value);
+    }
+
+    /**
+     * 
+     * @see pal_autoneg_policy_t
+     */
+    public pal_autoneg_policy_t getAn() {
+      return this.an;
+    }
+
+    /**
+     * 
+     * @see pal_autoneg_policy_t
+     */
+    public pal_port_an_set_args setAn(pal_autoneg_policy_t an) {
+      this.an = an;
+      return this;
+    }
+
+    public void unsetAn() {
+      this.an = null;
+    }
+
+    /** Returns true if field an is set (has been assigned a value) and false otherwise */
+    public boolean isSetAn() {
+      return this.an != null;
+    }
+
+    public void setAnIsSet(boolean value) {
+      if (!value) {
+        this.an = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case DEVICE:
+        if (value == null) {
+          unsetDevice();
+        } else {
+          setDevice((Byte)value);
+        }
+        break;
+
+      case DEV_PORT:
+        if (value == null) {
+          unsetDev_port();
+        } else {
+          setDev_port((Integer)value);
+        }
+        break;
+
+      case AN:
+        if (value == null) {
+          unsetAn();
+        } else {
+          setAn((pal_autoneg_policy_t)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case DEVICE:
+        return getDevice();
+
+      case DEV_PORT:
+        return getDev_port();
+
+      case AN:
+        return getAn();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case DEVICE:
+        return isSetDevice();
+      case DEV_PORT:
+        return isSetDev_port();
+      case AN:
+        return isSetAn();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof pal_port_an_set_args)
+        return this.equals((pal_port_an_set_args)that);
+      return false;
+    }
+
+    public boolean equals(pal_port_an_set_args that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_device = true;
+      boolean that_present_device = true;
+      if (this_present_device || that_present_device) {
+        if (!(this_present_device && that_present_device))
+          return false;
+        if (this.device != that.device)
+          return false;
+      }
+
+      boolean this_present_dev_port = true;
+      boolean that_present_dev_port = true;
+      if (this_present_dev_port || that_present_dev_port) {
+        if (!(this_present_dev_port && that_present_dev_port))
+          return false;
+        if (this.dev_port != that.dev_port)
+          return false;
+      }
+
+      boolean this_present_an = true && this.isSetAn();
+      boolean that_present_an = true && that.isSetAn();
+      if (this_present_an || that_present_an) {
+        if (!(this_present_an && that_present_an))
+          return false;
+        if (!this.an.equals(that.an))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + (int) (device);
+
+      hashCode = hashCode * 8191 + dev_port;
+
+      hashCode = hashCode * 8191 + ((isSetAn()) ? 131071 : 524287);
+      if (isSetAn())
+        hashCode = hashCode * 8191 + an.getValue();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(pal_port_an_set_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetDevice()).compareTo(other.isSetDevice());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetDevice()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.device, other.device);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetDev_port()).compareTo(other.isSetDev_port());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetDev_port()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dev_port, other.dev_port);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetAn()).compareTo(other.isSetAn());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetAn()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.an, other.an);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+    }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("pal_port_an_set_args(");
+      boolean first = true;
+
+      sb.append("device:");
+      sb.append(this.device);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("dev_port:");
+      sb.append(this.dev_port);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("an:");
+      if (this.an == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.an);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class pal_port_an_set_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_an_set_argsStandardScheme getScheme() {
+        return new pal_port_an_set_argsStandardScheme();
+      }
+    }
+
+    private static class pal_port_an_set_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<pal_port_an_set_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, pal_port_an_set_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // DEVICE
+              if (schemeField.type == org.apache.thrift.protocol.TType.BYTE) {
+                struct.device = iprot.readByte();
+                struct.setDeviceIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // DEV_PORT
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.dev_port = iprot.readI32();
+                struct.setDev_portIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 3: // AN
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.an = pal_autoneg_policy_t.findByValue(iprot.readI32());
+                struct.setAnIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, pal_port_an_set_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        oprot.writeFieldBegin(DEVICE_FIELD_DESC);
+        oprot.writeByte(struct.device);
+        oprot.writeFieldEnd();
+        oprot.writeFieldBegin(DEV_PORT_FIELD_DESC);
+        oprot.writeI32(struct.dev_port);
+        oprot.writeFieldEnd();
+        if (struct.an != null) {
+          oprot.writeFieldBegin(AN_FIELD_DESC);
+          oprot.writeI32(struct.an.getValue());
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class pal_port_an_set_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_an_set_argsTupleScheme getScheme() {
+        return new pal_port_an_set_argsTupleScheme();
+      }
+    }
+
+    private static class pal_port_an_set_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<pal_port_an_set_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, pal_port_an_set_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetDevice()) {
+          optionals.set(0);
+        }
+        if (struct.isSetDev_port()) {
+          optionals.set(1);
+        }
+        if (struct.isSetAn()) {
+          optionals.set(2);
+        }
+        oprot.writeBitSet(optionals, 3);
+        if (struct.isSetDevice()) {
+          oprot.writeByte(struct.device);
+        }
+        if (struct.isSetDev_port()) {
+          oprot.writeI32(struct.dev_port);
+        }
+        if (struct.isSetAn()) {
+          oprot.writeI32(struct.an.getValue());
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, pal_port_an_set_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(3);
+        if (incoming.get(0)) {
+          struct.device = iprot.readByte();
+          struct.setDeviceIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.dev_port = iprot.readI32();
+          struct.setDev_portIsSet(true);
+        }
+        if (incoming.get(2)) {
+          struct.an = pal_autoneg_policy_t.findByValue(iprot.readI32());
+          struct.setAnIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class pal_port_an_set_result implements org.apache.thrift.TBase<pal_port_an_set_result, pal_port_an_set_result._Fields>, java.io.Serializable, Cloneable, Comparable<pal_port_an_set_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pal_port_an_set_result");
+
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.I32, (short)0);
+    private static final org.apache.thrift.protocol.TField OUCH_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new pal_port_an_set_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pal_port_an_set_resultTupleSchemeFactory();
+
+    public int success; // required
+    public InvalidPalOperation ouch; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      SUCCESS((short)0, "success"),
+      OUCH((short)1, "ouch");
+
+      private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
+          case 1: // OUCH
+            return OUCH;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __SUCCESS_ISSET_ID = 0;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32          , "pal_status_t")));
+      tmpMap.put(_Fields.OUCH, new org.apache.thrift.meta_data.FieldMetaData("ouch", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidPalOperation.class)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pal_port_an_set_result.class, metaDataMap);
+    }
+
+    public pal_port_an_set_result() {
+    }
+
+    public pal_port_an_set_result(
+      int success,
+      InvalidPalOperation ouch)
+    {
+      this();
+      this.success = success;
+      setSuccessIsSet(true);
+      this.ouch = ouch;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public pal_port_an_set_result(pal_port_an_set_result other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.success = other.success;
+      if (other.isSetOuch()) {
+        this.ouch = new InvalidPalOperation(other.ouch);
+      }
+    }
+
+    public pal_port_an_set_result deepCopy() {
+      return new pal_port_an_set_result(this);
+    }
+
+    @Override
+    public void clear() {
+      setSuccessIsSet(false);
+      this.success = 0;
+      this.ouch = null;
+    }
+
+    public int getSuccess() {
+      return this.success;
+    }
+
+    public pal_port_an_set_result setSuccess(int success) {
+      this.success = success;
+      setSuccessIsSet(true);
+      return this;
+    }
+
+    public void unsetSuccess() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
+    }
+
+    public InvalidPalOperation getOuch() {
+      return this.ouch;
+    }
+
+    public pal_port_an_set_result setOuch(InvalidPalOperation ouch) {
+      this.ouch = ouch;
+      return this;
+    }
+
+    public void unsetOuch() {
+      this.ouch = null;
+    }
+
+    /** Returns true if field ouch is set (has been assigned a value) and false otherwise */
+    public boolean isSetOuch() {
+      return this.ouch != null;
+    }
+
+    public void setOuchIsSet(boolean value) {
+      if (!value) {
+        this.ouch = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((Integer)value);
+        }
+        break;
+
+      case OUCH:
+        if (value == null) {
+          unsetOuch();
+        } else {
+          setOuch((InvalidPalOperation)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
+      case OUCH:
+        return getOuch();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
+      case OUCH:
+        return isSetOuch();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof pal_port_an_set_result)
+        return this.equals((pal_port_an_set_result)that);
+      return false;
+    }
+
+    public boolean equals(pal_port_an_set_result that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_success = true;
+      boolean that_present_success = true;
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (this.success != that.success)
+          return false;
+      }
+
+      boolean this_present_ouch = true && this.isSetOuch();
+      boolean that_present_ouch = true && that.isSetOuch();
+      if (this_present_ouch || that_present_ouch) {
+        if (!(this_present_ouch && that_present_ouch))
+          return false;
+        if (!this.ouch.equals(that.ouch))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + success;
+
+      hashCode = hashCode * 8191 + ((isSetOuch()) ? 131071 : 524287);
+      if (isSetOuch())
+        hashCode = hashCode * 8191 + ouch.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(pal_port_an_set_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetOuch()).compareTo(other.isSetOuch());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetOuch()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch, other.ouch);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+      }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("pal_port_an_set_result(");
+      boolean first = true;
+
+      sb.append("success:");
+      sb.append(this.success);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ouch:");
+      if (this.ouch == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ouch);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class pal_port_an_set_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_an_set_resultStandardScheme getScheme() {
+        return new pal_port_an_set_resultStandardScheme();
+      }
+    }
+
+    private static class pal_port_an_set_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<pal_port_an_set_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, pal_port_an_set_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.success = iprot.readI32();
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 1: // OUCH
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ouch = new InvalidPalOperation();
+                struct.ouch.read(iprot);
+                struct.setOuchIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, pal_port_an_set_result struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.isSetSuccess()) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          oprot.writeI32(struct.success);
+          oprot.writeFieldEnd();
+        }
+        if (struct.ouch != null) {
+          oprot.writeFieldBegin(OUCH_FIELD_DESC);
+          struct.ouch.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class pal_port_an_set_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_an_set_resultTupleScheme getScheme() {
+        return new pal_port_an_set_resultTupleScheme();
+      }
+    }
+
+    private static class pal_port_an_set_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<pal_port_an_set_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, pal_port_an_set_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetSuccess()) {
+          optionals.set(0);
+        }
+        if (struct.isSetOuch()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetSuccess()) {
+          oprot.writeI32(struct.success);
+        }
+        if (struct.isSetOuch()) {
+          struct.ouch.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, pal_port_an_set_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          struct.success = iprot.readI32();
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.ouch = new InvalidPalOperation();
+          struct.ouch.read(iprot);
+          struct.setOuchIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class pal_port_an_set_all_args implements org.apache.thrift.TBase<pal_port_an_set_all_args, pal_port_an_set_all_args._Fields>, java.io.Serializable, Cloneable, Comparable<pal_port_an_set_all_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pal_port_an_set_all_args");
+
+    private static final org.apache.thrift.protocol.TField DEVICE_FIELD_DESC = new org.apache.thrift.protocol.TField("device", org.apache.thrift.protocol.TType.BYTE, (short)1);
+    private static final org.apache.thrift.protocol.TField AN_FIELD_DESC = new org.apache.thrift.protocol.TField("an", org.apache.thrift.protocol.TType.I32, (short)2);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new pal_port_an_set_all_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pal_port_an_set_all_argsTupleSchemeFactory();
+
+    public byte device; // required
+    /**
+     * 
+     * @see pal_autoneg_policy_t
+     */
+    public pal_autoneg_policy_t an; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      DEVICE((short)1, "device"),
+      /**
+       * 
+       * @see pal_autoneg_policy_t
+       */
+      AN((short)2, "an");
+
+      private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // DEVICE
+            return DEVICE;
+          case 2: // AN
+            return AN;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __DEVICE_ISSET_ID = 0;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.DEVICE, new org.apache.thrift.meta_data.FieldMetaData("device", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BYTE          , "pal_device_t")));
+      tmpMap.put(_Fields.AN, new org.apache.thrift.meta_data.FieldMetaData("an", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, pal_autoneg_policy_t.class)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pal_port_an_set_all_args.class, metaDataMap);
+    }
+
+    public pal_port_an_set_all_args() {
+    }
+
+    public pal_port_an_set_all_args(
+      byte device,
+      pal_autoneg_policy_t an)
+    {
+      this();
+      this.device = device;
+      setDeviceIsSet(true);
+      this.an = an;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public pal_port_an_set_all_args(pal_port_an_set_all_args other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.device = other.device;
+      if (other.isSetAn()) {
+        this.an = other.an;
+      }
+    }
+
+    public pal_port_an_set_all_args deepCopy() {
+      return new pal_port_an_set_all_args(this);
+    }
+
+    @Override
+    public void clear() {
+      setDeviceIsSet(false);
+      this.device = 0;
+      this.an = null;
+    }
+
+    public byte getDevice() {
+      return this.device;
+    }
+
+    public pal_port_an_set_all_args setDevice(byte device) {
+      this.device = device;
+      setDeviceIsSet(true);
+      return this;
+    }
+
+    public void unsetDevice() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DEVICE_ISSET_ID);
+    }
+
+    /** Returns true if field device is set (has been assigned a value) and false otherwise */
+    public boolean isSetDevice() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DEVICE_ISSET_ID);
+    }
+
+    public void setDeviceIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DEVICE_ISSET_ID, value);
+    }
+
+    /**
+     * 
+     * @see pal_autoneg_policy_t
+     */
+    public pal_autoneg_policy_t getAn() {
+      return this.an;
+    }
+
+    /**
+     * 
+     * @see pal_autoneg_policy_t
+     */
+    public pal_port_an_set_all_args setAn(pal_autoneg_policy_t an) {
+      this.an = an;
+      return this;
+    }
+
+    public void unsetAn() {
+      this.an = null;
+    }
+
+    /** Returns true if field an is set (has been assigned a value) and false otherwise */
+    public boolean isSetAn() {
+      return this.an != null;
+    }
+
+    public void setAnIsSet(boolean value) {
+      if (!value) {
+        this.an = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case DEVICE:
+        if (value == null) {
+          unsetDevice();
+        } else {
+          setDevice((Byte)value);
+        }
+        break;
+
+      case AN:
+        if (value == null) {
+          unsetAn();
+        } else {
+          setAn((pal_autoneg_policy_t)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case DEVICE:
+        return getDevice();
+
+      case AN:
+        return getAn();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case DEVICE:
+        return isSetDevice();
+      case AN:
+        return isSetAn();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof pal_port_an_set_all_args)
+        return this.equals((pal_port_an_set_all_args)that);
+      return false;
+    }
+
+    public boolean equals(pal_port_an_set_all_args that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_device = true;
+      boolean that_present_device = true;
+      if (this_present_device || that_present_device) {
+        if (!(this_present_device && that_present_device))
+          return false;
+        if (this.device != that.device)
+          return false;
+      }
+
+      boolean this_present_an = true && this.isSetAn();
+      boolean that_present_an = true && that.isSetAn();
+      if (this_present_an || that_present_an) {
+        if (!(this_present_an && that_present_an))
+          return false;
+        if (!this.an.equals(that.an))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + (int) (device);
+
+      hashCode = hashCode * 8191 + ((isSetAn()) ? 131071 : 524287);
+      if (isSetAn())
+        hashCode = hashCode * 8191 + an.getValue();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(pal_port_an_set_all_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetDevice()).compareTo(other.isSetDevice());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetDevice()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.device, other.device);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetAn()).compareTo(other.isSetAn());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetAn()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.an, other.an);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+    }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("pal_port_an_set_all_args(");
+      boolean first = true;
+
+      sb.append("device:");
+      sb.append(this.device);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("an:");
+      if (this.an == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.an);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class pal_port_an_set_all_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_an_set_all_argsStandardScheme getScheme() {
+        return new pal_port_an_set_all_argsStandardScheme();
+      }
+    }
+
+    private static class pal_port_an_set_all_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<pal_port_an_set_all_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, pal_port_an_set_all_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // DEVICE
+              if (schemeField.type == org.apache.thrift.protocol.TType.BYTE) {
+                struct.device = iprot.readByte();
+                struct.setDeviceIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // AN
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.an = pal_autoneg_policy_t.findByValue(iprot.readI32());
+                struct.setAnIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, pal_port_an_set_all_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        oprot.writeFieldBegin(DEVICE_FIELD_DESC);
+        oprot.writeByte(struct.device);
+        oprot.writeFieldEnd();
+        if (struct.an != null) {
+          oprot.writeFieldBegin(AN_FIELD_DESC);
+          oprot.writeI32(struct.an.getValue());
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class pal_port_an_set_all_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_an_set_all_argsTupleScheme getScheme() {
+        return new pal_port_an_set_all_argsTupleScheme();
+      }
+    }
+
+    private static class pal_port_an_set_all_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<pal_port_an_set_all_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, pal_port_an_set_all_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetDevice()) {
+          optionals.set(0);
+        }
+        if (struct.isSetAn()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetDevice()) {
+          oprot.writeByte(struct.device);
+        }
+        if (struct.isSetAn()) {
+          oprot.writeI32(struct.an.getValue());
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, pal_port_an_set_all_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          struct.device = iprot.readByte();
+          struct.setDeviceIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.an = pal_autoneg_policy_t.findByValue(iprot.readI32());
+          struct.setAnIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class pal_port_an_set_all_result implements org.apache.thrift.TBase<pal_port_an_set_all_result, pal_port_an_set_all_result._Fields>, java.io.Serializable, Cloneable, Comparable<pal_port_an_set_all_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pal_port_an_set_all_result");
+
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.I32, (short)0);
+    private static final org.apache.thrift.protocol.TField OUCH_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new pal_port_an_set_all_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pal_port_an_set_all_resultTupleSchemeFactory();
+
+    public int success; // required
+    public InvalidPalOperation ouch; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      SUCCESS((short)0, "success"),
+      OUCH((short)1, "ouch");
+
+      private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
+          case 1: // OUCH
+            return OUCH;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __SUCCESS_ISSET_ID = 0;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32          , "pal_status_t")));
+      tmpMap.put(_Fields.OUCH, new org.apache.thrift.meta_data.FieldMetaData("ouch", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidPalOperation.class)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pal_port_an_set_all_result.class, metaDataMap);
+    }
+
+    public pal_port_an_set_all_result() {
+    }
+
+    public pal_port_an_set_all_result(
+      int success,
+      InvalidPalOperation ouch)
+    {
+      this();
+      this.success = success;
+      setSuccessIsSet(true);
+      this.ouch = ouch;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public pal_port_an_set_all_result(pal_port_an_set_all_result other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.success = other.success;
+      if (other.isSetOuch()) {
+        this.ouch = new InvalidPalOperation(other.ouch);
+      }
+    }
+
+    public pal_port_an_set_all_result deepCopy() {
+      return new pal_port_an_set_all_result(this);
+    }
+
+    @Override
+    public void clear() {
+      setSuccessIsSet(false);
+      this.success = 0;
+      this.ouch = null;
+    }
+
+    public int getSuccess() {
+      return this.success;
+    }
+
+    public pal_port_an_set_all_result setSuccess(int success) {
+      this.success = success;
+      setSuccessIsSet(true);
+      return this;
+    }
+
+    public void unsetSuccess() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
+    }
+
+    public InvalidPalOperation getOuch() {
+      return this.ouch;
+    }
+
+    public pal_port_an_set_all_result setOuch(InvalidPalOperation ouch) {
+      this.ouch = ouch;
+      return this;
+    }
+
+    public void unsetOuch() {
+      this.ouch = null;
+    }
+
+    /** Returns true if field ouch is set (has been assigned a value) and false otherwise */
+    public boolean isSetOuch() {
+      return this.ouch != null;
+    }
+
+    public void setOuchIsSet(boolean value) {
+      if (!value) {
+        this.ouch = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((Integer)value);
+        }
+        break;
+
+      case OUCH:
+        if (value == null) {
+          unsetOuch();
+        } else {
+          setOuch((InvalidPalOperation)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
+      case OUCH:
+        return getOuch();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
+      case OUCH:
+        return isSetOuch();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof pal_port_an_set_all_result)
+        return this.equals((pal_port_an_set_all_result)that);
+      return false;
+    }
+
+    public boolean equals(pal_port_an_set_all_result that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_success = true;
+      boolean that_present_success = true;
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (this.success != that.success)
+          return false;
+      }
+
+      boolean this_present_ouch = true && this.isSetOuch();
+      boolean that_present_ouch = true && that.isSetOuch();
+      if (this_present_ouch || that_present_ouch) {
+        if (!(this_present_ouch && that_present_ouch))
+          return false;
+        if (!this.ouch.equals(that.ouch))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + success;
+
+      hashCode = hashCode * 8191 + ((isSetOuch()) ? 131071 : 524287);
+      if (isSetOuch())
+        hashCode = hashCode * 8191 + ouch.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(pal_port_an_set_all_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetOuch()).compareTo(other.isSetOuch());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetOuch()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch, other.ouch);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+      }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("pal_port_an_set_all_result(");
+      boolean first = true;
+
+      sb.append("success:");
+      sb.append(this.success);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ouch:");
+      if (this.ouch == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ouch);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class pal_port_an_set_all_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_an_set_all_resultStandardScheme getScheme() {
+        return new pal_port_an_set_all_resultStandardScheme();
+      }
+    }
+
+    private static class pal_port_an_set_all_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<pal_port_an_set_all_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, pal_port_an_set_all_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.success = iprot.readI32();
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 1: // OUCH
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ouch = new InvalidPalOperation();
+                struct.ouch.read(iprot);
+                struct.setOuchIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, pal_port_an_set_all_result struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.isSetSuccess()) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          oprot.writeI32(struct.success);
+          oprot.writeFieldEnd();
+        }
+        if (struct.ouch != null) {
+          oprot.writeFieldBegin(OUCH_FIELD_DESC);
+          struct.ouch.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class pal_port_an_set_all_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_an_set_all_resultTupleScheme getScheme() {
+        return new pal_port_an_set_all_resultTupleScheme();
+      }
+    }
+
+    private static class pal_port_an_set_all_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<pal_port_an_set_all_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, pal_port_an_set_all_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetSuccess()) {
+          optionals.set(0);
+        }
+        if (struct.isSetOuch()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetSuccess()) {
+          oprot.writeI32(struct.success);
+        }
+        if (struct.isSetOuch()) {
+          struct.ouch.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, pal_port_an_set_all_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          struct.success = iprot.readI32();
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.ouch = new InvalidPalOperation();
+          struct.ouch.read(iprot);
+          struct.setOuchIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class pal_port_loopback_mode_set_args implements org.apache.thrift.TBase<pal_port_loopback_mode_set_args, pal_port_loopback_mode_set_args._Fields>, java.io.Serializable, Cloneable, Comparable<pal_port_loopback_mode_set_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pal_port_loopback_mode_set_args");
+
+    private static final org.apache.thrift.protocol.TField DEV_FIELD_DESC = new org.apache.thrift.protocol.TField("dev", org.apache.thrift.protocol.TType.BYTE, (short)1);
+    private static final org.apache.thrift.protocol.TField DEV_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("dev_port", org.apache.thrift.protocol.TType.I32, (short)2);
+    private static final org.apache.thrift.protocol.TField MODE_FIELD_DESC = new org.apache.thrift.protocol.TField("mode", org.apache.thrift.protocol.TType.I32, (short)3);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new pal_port_loopback_mode_set_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pal_port_loopback_mode_set_argsTupleSchemeFactory();
+
+    public byte dev; // required
+    public int dev_port; // required
+    /**
+     * 
+     * @see pal_loopback_mod_t
+     */
+    public pal_loopback_mod_t mode; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      DEV((short)1, "dev"),
+      DEV_PORT((short)2, "dev_port"),
+      /**
+       * 
+       * @see pal_loopback_mod_t
+       */
+      MODE((short)3, "mode");
+
+      private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // DEV
+            return DEV;
+          case 2: // DEV_PORT
+            return DEV_PORT;
+          case 3: // MODE
+            return MODE;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __DEV_ISSET_ID = 0;
+    private static final int __DEV_PORT_ISSET_ID = 1;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.DEV, new org.apache.thrift.meta_data.FieldMetaData("dev", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BYTE          , "pal_device_t")));
+      tmpMap.put(_Fields.DEV_PORT, new org.apache.thrift.meta_data.FieldMetaData("dev_port", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32          , "pal_dev_port_t")));
+      tmpMap.put(_Fields.MODE, new org.apache.thrift.meta_data.FieldMetaData("mode", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, pal_loopback_mod_t.class)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pal_port_loopback_mode_set_args.class, metaDataMap);
+    }
+
+    public pal_port_loopback_mode_set_args() {
+    }
+
+    public pal_port_loopback_mode_set_args(
+      byte dev,
+      int dev_port,
+      pal_loopback_mod_t mode)
+    {
+      this();
+      this.dev = dev;
+      setDevIsSet(true);
+      this.dev_port = dev_port;
+      setDev_portIsSet(true);
+      this.mode = mode;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public pal_port_loopback_mode_set_args(pal_port_loopback_mode_set_args other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.dev = other.dev;
+      this.dev_port = other.dev_port;
+      if (other.isSetMode()) {
+        this.mode = other.mode;
+      }
+    }
+
+    public pal_port_loopback_mode_set_args deepCopy() {
+      return new pal_port_loopback_mode_set_args(this);
+    }
+
+    @Override
+    public void clear() {
+      setDevIsSet(false);
+      this.dev = 0;
+      setDev_portIsSet(false);
+      this.dev_port = 0;
+      this.mode = null;
+    }
+
+    public byte getDev() {
+      return this.dev;
+    }
+
+    public pal_port_loopback_mode_set_args setDev(byte dev) {
+      this.dev = dev;
+      setDevIsSet(true);
+      return this;
+    }
+
+    public void unsetDev() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DEV_ISSET_ID);
+    }
+
+    /** Returns true if field dev is set (has been assigned a value) and false otherwise */
+    public boolean isSetDev() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DEV_ISSET_ID);
+    }
+
+    public void setDevIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DEV_ISSET_ID, value);
+    }
+
+    public int getDev_port() {
+      return this.dev_port;
+    }
+
+    public pal_port_loopback_mode_set_args setDev_port(int dev_port) {
+      this.dev_port = dev_port;
+      setDev_portIsSet(true);
+      return this;
+    }
+
+    public void unsetDev_port() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DEV_PORT_ISSET_ID);
+    }
+
+    /** Returns true if field dev_port is set (has been assigned a value) and false otherwise */
+    public boolean isSetDev_port() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DEV_PORT_ISSET_ID);
+    }
+
+    public void setDev_portIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DEV_PORT_ISSET_ID, value);
+    }
+
+    /**
+     * 
+     * @see pal_loopback_mod_t
+     */
+    public pal_loopback_mod_t getMode() {
+      return this.mode;
+    }
+
+    /**
+     * 
+     * @see pal_loopback_mod_t
+     */
+    public pal_port_loopback_mode_set_args setMode(pal_loopback_mod_t mode) {
+      this.mode = mode;
+      return this;
+    }
+
+    public void unsetMode() {
+      this.mode = null;
+    }
+
+    /** Returns true if field mode is set (has been assigned a value) and false otherwise */
+    public boolean isSetMode() {
+      return this.mode != null;
+    }
+
+    public void setModeIsSet(boolean value) {
+      if (!value) {
+        this.mode = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case DEV:
+        if (value == null) {
+          unsetDev();
+        } else {
+          setDev((Byte)value);
+        }
+        break;
+
+      case DEV_PORT:
+        if (value == null) {
+          unsetDev_port();
+        } else {
+          setDev_port((Integer)value);
+        }
+        break;
+
+      case MODE:
+        if (value == null) {
+          unsetMode();
+        } else {
+          setMode((pal_loopback_mod_t)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case DEV:
+        return getDev();
+
+      case DEV_PORT:
+        return getDev_port();
+
+      case MODE:
+        return getMode();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case DEV:
+        return isSetDev();
+      case DEV_PORT:
+        return isSetDev_port();
+      case MODE:
+        return isSetMode();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof pal_port_loopback_mode_set_args)
+        return this.equals((pal_port_loopback_mode_set_args)that);
+      return false;
+    }
+
+    public boolean equals(pal_port_loopback_mode_set_args that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_dev = true;
+      boolean that_present_dev = true;
+      if (this_present_dev || that_present_dev) {
+        if (!(this_present_dev && that_present_dev))
+          return false;
+        if (this.dev != that.dev)
+          return false;
+      }
+
+      boolean this_present_dev_port = true;
+      boolean that_present_dev_port = true;
+      if (this_present_dev_port || that_present_dev_port) {
+        if (!(this_present_dev_port && that_present_dev_port))
+          return false;
+        if (this.dev_port != that.dev_port)
+          return false;
+      }
+
+      boolean this_present_mode = true && this.isSetMode();
+      boolean that_present_mode = true && that.isSetMode();
+      if (this_present_mode || that_present_mode) {
+        if (!(this_present_mode && that_present_mode))
+          return false;
+        if (!this.mode.equals(that.mode))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + (int) (dev);
+
+      hashCode = hashCode * 8191 + dev_port;
+
+      hashCode = hashCode * 8191 + ((isSetMode()) ? 131071 : 524287);
+      if (isSetMode())
+        hashCode = hashCode * 8191 + mode.getValue();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(pal_port_loopback_mode_set_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetDev()).compareTo(other.isSetDev());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetDev()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dev, other.dev);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetDev_port()).compareTo(other.isSetDev_port());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetDev_port()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dev_port, other.dev_port);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetMode()).compareTo(other.isSetMode());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetMode()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.mode, other.mode);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+    }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("pal_port_loopback_mode_set_args(");
+      boolean first = true;
+
+      sb.append("dev:");
+      sb.append(this.dev);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("dev_port:");
+      sb.append(this.dev_port);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("mode:");
+      if (this.mode == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.mode);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class pal_port_loopback_mode_set_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_loopback_mode_set_argsStandardScheme getScheme() {
+        return new pal_port_loopback_mode_set_argsStandardScheme();
+      }
+    }
+
+    private static class pal_port_loopback_mode_set_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<pal_port_loopback_mode_set_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, pal_port_loopback_mode_set_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // DEV
+              if (schemeField.type == org.apache.thrift.protocol.TType.BYTE) {
+                struct.dev = iprot.readByte();
+                struct.setDevIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // DEV_PORT
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.dev_port = iprot.readI32();
+                struct.setDev_portIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 3: // MODE
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.mode = pal_loopback_mod_t.findByValue(iprot.readI32());
+                struct.setModeIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, pal_port_loopback_mode_set_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        oprot.writeFieldBegin(DEV_FIELD_DESC);
+        oprot.writeByte(struct.dev);
+        oprot.writeFieldEnd();
+        oprot.writeFieldBegin(DEV_PORT_FIELD_DESC);
+        oprot.writeI32(struct.dev_port);
+        oprot.writeFieldEnd();
+        if (struct.mode != null) {
+          oprot.writeFieldBegin(MODE_FIELD_DESC);
+          oprot.writeI32(struct.mode.getValue());
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class pal_port_loopback_mode_set_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_loopback_mode_set_argsTupleScheme getScheme() {
+        return new pal_port_loopback_mode_set_argsTupleScheme();
+      }
+    }
+
+    private static class pal_port_loopback_mode_set_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<pal_port_loopback_mode_set_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, pal_port_loopback_mode_set_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetDev()) {
+          optionals.set(0);
+        }
+        if (struct.isSetDev_port()) {
+          optionals.set(1);
+        }
+        if (struct.isSetMode()) {
+          optionals.set(2);
+        }
+        oprot.writeBitSet(optionals, 3);
+        if (struct.isSetDev()) {
+          oprot.writeByte(struct.dev);
+        }
+        if (struct.isSetDev_port()) {
+          oprot.writeI32(struct.dev_port);
+        }
+        if (struct.isSetMode()) {
+          oprot.writeI32(struct.mode.getValue());
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, pal_port_loopback_mode_set_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(3);
+        if (incoming.get(0)) {
+          struct.dev = iprot.readByte();
+          struct.setDevIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.dev_port = iprot.readI32();
+          struct.setDev_portIsSet(true);
+        }
+        if (incoming.get(2)) {
+          struct.mode = pal_loopback_mod_t.findByValue(iprot.readI32());
+          struct.setModeIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class pal_port_loopback_mode_set_result implements org.apache.thrift.TBase<pal_port_loopback_mode_set_result, pal_port_loopback_mode_set_result._Fields>, java.io.Serializable, Cloneable, Comparable<pal_port_loopback_mode_set_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pal_port_loopback_mode_set_result");
+
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.I32, (short)0);
+    private static final org.apache.thrift.protocol.TField OUCH_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new pal_port_loopback_mode_set_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pal_port_loopback_mode_set_resultTupleSchemeFactory();
+
+    public int success; // required
+    public InvalidPalOperation ouch; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      SUCCESS((short)0, "success"),
+      OUCH((short)1, "ouch");
+
+      private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
+          case 1: // OUCH
+            return OUCH;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __SUCCESS_ISSET_ID = 0;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32          , "pal_status_t")));
+      tmpMap.put(_Fields.OUCH, new org.apache.thrift.meta_data.FieldMetaData("ouch", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidPalOperation.class)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pal_port_loopback_mode_set_result.class, metaDataMap);
+    }
+
+    public pal_port_loopback_mode_set_result() {
+    }
+
+    public pal_port_loopback_mode_set_result(
+      int success,
+      InvalidPalOperation ouch)
+    {
+      this();
+      this.success = success;
+      setSuccessIsSet(true);
+      this.ouch = ouch;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public pal_port_loopback_mode_set_result(pal_port_loopback_mode_set_result other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.success = other.success;
+      if (other.isSetOuch()) {
+        this.ouch = new InvalidPalOperation(other.ouch);
+      }
+    }
+
+    public pal_port_loopback_mode_set_result deepCopy() {
+      return new pal_port_loopback_mode_set_result(this);
+    }
+
+    @Override
+    public void clear() {
+      setSuccessIsSet(false);
+      this.success = 0;
+      this.ouch = null;
+    }
+
+    public int getSuccess() {
+      return this.success;
+    }
+
+    public pal_port_loopback_mode_set_result setSuccess(int success) {
+      this.success = success;
+      setSuccessIsSet(true);
+      return this;
+    }
+
+    public void unsetSuccess() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
+    }
+
+    public InvalidPalOperation getOuch() {
+      return this.ouch;
+    }
+
+    public pal_port_loopback_mode_set_result setOuch(InvalidPalOperation ouch) {
+      this.ouch = ouch;
+      return this;
+    }
+
+    public void unsetOuch() {
+      this.ouch = null;
+    }
+
+    /** Returns true if field ouch is set (has been assigned a value) and false otherwise */
+    public boolean isSetOuch() {
+      return this.ouch != null;
+    }
+
+    public void setOuchIsSet(boolean value) {
+      if (!value) {
+        this.ouch = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((Integer)value);
+        }
+        break;
+
+      case OUCH:
+        if (value == null) {
+          unsetOuch();
+        } else {
+          setOuch((InvalidPalOperation)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
+      case OUCH:
+        return getOuch();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
+      case OUCH:
+        return isSetOuch();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof pal_port_loopback_mode_set_result)
+        return this.equals((pal_port_loopback_mode_set_result)that);
+      return false;
+    }
+
+    public boolean equals(pal_port_loopback_mode_set_result that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_success = true;
+      boolean that_present_success = true;
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (this.success != that.success)
+          return false;
+      }
+
+      boolean this_present_ouch = true && this.isSetOuch();
+      boolean that_present_ouch = true && that.isSetOuch();
+      if (this_present_ouch || that_present_ouch) {
+        if (!(this_present_ouch && that_present_ouch))
+          return false;
+        if (!this.ouch.equals(that.ouch))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + success;
+
+      hashCode = hashCode * 8191 + ((isSetOuch()) ? 131071 : 524287);
+      if (isSetOuch())
+        hashCode = hashCode * 8191 + ouch.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(pal_port_loopback_mode_set_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetOuch()).compareTo(other.isSetOuch());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetOuch()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch, other.ouch);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+      }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("pal_port_loopback_mode_set_result(");
+      boolean first = true;
+
+      sb.append("success:");
+      sb.append(this.success);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ouch:");
+      if (this.ouch == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ouch);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class pal_port_loopback_mode_set_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_loopback_mode_set_resultStandardScheme getScheme() {
+        return new pal_port_loopback_mode_set_resultStandardScheme();
+      }
+    }
+
+    private static class pal_port_loopback_mode_set_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<pal_port_loopback_mode_set_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, pal_port_loopback_mode_set_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.success = iprot.readI32();
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 1: // OUCH
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ouch = new InvalidPalOperation();
+                struct.ouch.read(iprot);
+                struct.setOuchIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, pal_port_loopback_mode_set_result struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.isSetSuccess()) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          oprot.writeI32(struct.success);
+          oprot.writeFieldEnd();
+        }
+        if (struct.ouch != null) {
+          oprot.writeFieldBegin(OUCH_FIELD_DESC);
+          struct.ouch.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class pal_port_loopback_mode_set_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_loopback_mode_set_resultTupleScheme getScheme() {
+        return new pal_port_loopback_mode_set_resultTupleScheme();
+      }
+    }
+
+    private static class pal_port_loopback_mode_set_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<pal_port_loopback_mode_set_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, pal_port_loopback_mode_set_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetSuccess()) {
+          optionals.set(0);
+        }
+        if (struct.isSetOuch()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetSuccess()) {
+          oprot.writeI32(struct.success);
+        }
+        if (struct.isSetOuch()) {
+          struct.ouch.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, pal_port_loopback_mode_set_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          struct.success = iprot.readI32();
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.ouch = new InvalidPalOperation();
+          struct.ouch.read(iprot);
+          struct.setOuchIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class pal_port_front_panel_port_to_dev_port_get_args implements org.apache.thrift.TBase<pal_port_front_panel_port_to_dev_port_get_args, pal_port_front_panel_port_to_dev_port_get_args._Fields>, java.io.Serializable, Cloneable, Comparable<pal_port_front_panel_port_to_dev_port_get_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pal_port_front_panel_port_to_dev_port_get_args");
+
+    private static final org.apache.thrift.protocol.TField DEV_FIELD_DESC = new org.apache.thrift.protocol.TField("dev", org.apache.thrift.protocol.TType.BYTE, (short)1);
+    private static final org.apache.thrift.protocol.TField FRONT_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("front_port", org.apache.thrift.protocol.TType.I32, (short)2);
+    private static final org.apache.thrift.protocol.TField FRONT_CHNL_FIELD_DESC = new org.apache.thrift.protocol.TField("front_chnl", org.apache.thrift.protocol.TType.I32, (short)3);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new pal_port_front_panel_port_to_dev_port_get_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pal_port_front_panel_port_to_dev_port_get_argsTupleSchemeFactory();
+
+    public byte dev; // required
+    public int front_port; // required
+    public int front_chnl; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      DEV((short)1, "dev"),
+      FRONT_PORT((short)2, "front_port"),
+      FRONT_CHNL((short)3, "front_chnl");
+
+      private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // DEV
+            return DEV;
+          case 2: // FRONT_PORT
+            return FRONT_PORT;
+          case 3: // FRONT_CHNL
+            return FRONT_CHNL;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __DEV_ISSET_ID = 0;
+    private static final int __FRONT_PORT_ISSET_ID = 1;
+    private static final int __FRONT_CHNL_ISSET_ID = 2;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.DEV, new org.apache.thrift.meta_data.FieldMetaData("dev", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BYTE          , "pal_device_t")));
+      tmpMap.put(_Fields.FRONT_PORT, new org.apache.thrift.meta_data.FieldMetaData("front_port", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32          , "pal_front_port_t")));
+      tmpMap.put(_Fields.FRONT_CHNL, new org.apache.thrift.meta_data.FieldMetaData("front_chnl", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32          , "pal_front_chnl_t")));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pal_port_front_panel_port_to_dev_port_get_args.class, metaDataMap);
+    }
+
+    public pal_port_front_panel_port_to_dev_port_get_args() {
+    }
+
+    public pal_port_front_panel_port_to_dev_port_get_args(
+      byte dev,
+      int front_port,
+      int front_chnl)
+    {
+      this();
+      this.dev = dev;
+      setDevIsSet(true);
+      this.front_port = front_port;
+      setFront_portIsSet(true);
+      this.front_chnl = front_chnl;
+      setFront_chnlIsSet(true);
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public pal_port_front_panel_port_to_dev_port_get_args(pal_port_front_panel_port_to_dev_port_get_args other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.dev = other.dev;
+      this.front_port = other.front_port;
+      this.front_chnl = other.front_chnl;
+    }
+
+    public pal_port_front_panel_port_to_dev_port_get_args deepCopy() {
+      return new pal_port_front_panel_port_to_dev_port_get_args(this);
+    }
+
+    @Override
+    public void clear() {
+      setDevIsSet(false);
+      this.dev = 0;
+      setFront_portIsSet(false);
+      this.front_port = 0;
+      setFront_chnlIsSet(false);
+      this.front_chnl = 0;
+    }
+
+    public byte getDev() {
+      return this.dev;
+    }
+
+    public pal_port_front_panel_port_to_dev_port_get_args setDev(byte dev) {
+      this.dev = dev;
+      setDevIsSet(true);
+      return this;
+    }
+
+    public void unsetDev() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __DEV_ISSET_ID);
+    }
+
+    /** Returns true if field dev is set (has been assigned a value) and false otherwise */
+    public boolean isSetDev() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __DEV_ISSET_ID);
+    }
+
+    public void setDevIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __DEV_ISSET_ID, value);
+    }
+
+    public int getFront_port() {
+      return this.front_port;
+    }
+
+    public pal_port_front_panel_port_to_dev_port_get_args setFront_port(int front_port) {
+      this.front_port = front_port;
+      setFront_portIsSet(true);
+      return this;
+    }
+
+    public void unsetFront_port() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __FRONT_PORT_ISSET_ID);
+    }
+
+    /** Returns true if field front_port is set (has been assigned a value) and false otherwise */
+    public boolean isSetFront_port() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __FRONT_PORT_ISSET_ID);
+    }
+
+    public void setFront_portIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __FRONT_PORT_ISSET_ID, value);
+    }
+
+    public int getFront_chnl() {
+      return this.front_chnl;
+    }
+
+    public pal_port_front_panel_port_to_dev_port_get_args setFront_chnl(int front_chnl) {
+      this.front_chnl = front_chnl;
+      setFront_chnlIsSet(true);
+      return this;
+    }
+
+    public void unsetFront_chnl() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __FRONT_CHNL_ISSET_ID);
+    }
+
+    /** Returns true if field front_chnl is set (has been assigned a value) and false otherwise */
+    public boolean isSetFront_chnl() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __FRONT_CHNL_ISSET_ID);
+    }
+
+    public void setFront_chnlIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __FRONT_CHNL_ISSET_ID, value);
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case DEV:
+        if (value == null) {
+          unsetDev();
+        } else {
+          setDev((Byte)value);
+        }
+        break;
+
+      case FRONT_PORT:
+        if (value == null) {
+          unsetFront_port();
+        } else {
+          setFront_port((Integer)value);
+        }
+        break;
+
+      case FRONT_CHNL:
+        if (value == null) {
+          unsetFront_chnl();
+        } else {
+          setFront_chnl((Integer)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case DEV:
+        return getDev();
+
+      case FRONT_PORT:
+        return getFront_port();
+
+      case FRONT_CHNL:
+        return getFront_chnl();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case DEV:
+        return isSetDev();
+      case FRONT_PORT:
+        return isSetFront_port();
+      case FRONT_CHNL:
+        return isSetFront_chnl();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof pal_port_front_panel_port_to_dev_port_get_args)
+        return this.equals((pal_port_front_panel_port_to_dev_port_get_args)that);
+      return false;
+    }
+
+    public boolean equals(pal_port_front_panel_port_to_dev_port_get_args that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_dev = true;
+      boolean that_present_dev = true;
+      if (this_present_dev || that_present_dev) {
+        if (!(this_present_dev && that_present_dev))
+          return false;
+        if (this.dev != that.dev)
+          return false;
+      }
+
+      boolean this_present_front_port = true;
+      boolean that_present_front_port = true;
+      if (this_present_front_port || that_present_front_port) {
+        if (!(this_present_front_port && that_present_front_port))
+          return false;
+        if (this.front_port != that.front_port)
+          return false;
+      }
+
+      boolean this_present_front_chnl = true;
+      boolean that_present_front_chnl = true;
+      if (this_present_front_chnl || that_present_front_chnl) {
+        if (!(this_present_front_chnl && that_present_front_chnl))
+          return false;
+        if (this.front_chnl != that.front_chnl)
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + (int) (dev);
+
+      hashCode = hashCode * 8191 + front_port;
+
+      hashCode = hashCode * 8191 + front_chnl;
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(pal_port_front_panel_port_to_dev_port_get_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetDev()).compareTo(other.isSetDev());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetDev()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dev, other.dev);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetFront_port()).compareTo(other.isSetFront_port());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetFront_port()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.front_port, other.front_port);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetFront_chnl()).compareTo(other.isSetFront_chnl());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetFront_chnl()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.front_chnl, other.front_chnl);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+    }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("pal_port_front_panel_port_to_dev_port_get_args(");
+      boolean first = true;
+
+      sb.append("dev:");
+      sb.append(this.dev);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("front_port:");
+      sb.append(this.front_port);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("front_chnl:");
+      sb.append(this.front_chnl);
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class pal_port_front_panel_port_to_dev_port_get_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_front_panel_port_to_dev_port_get_argsStandardScheme getScheme() {
+        return new pal_port_front_panel_port_to_dev_port_get_argsStandardScheme();
+      }
+    }
+
+    private static class pal_port_front_panel_port_to_dev_port_get_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<pal_port_front_panel_port_to_dev_port_get_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, pal_port_front_panel_port_to_dev_port_get_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // DEV
+              if (schemeField.type == org.apache.thrift.protocol.TType.BYTE) {
+                struct.dev = iprot.readByte();
+                struct.setDevIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // FRONT_PORT
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.front_port = iprot.readI32();
+                struct.setFront_portIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 3: // FRONT_CHNL
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.front_chnl = iprot.readI32();
+                struct.setFront_chnlIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, pal_port_front_panel_port_to_dev_port_get_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        oprot.writeFieldBegin(DEV_FIELD_DESC);
+        oprot.writeByte(struct.dev);
+        oprot.writeFieldEnd();
+        oprot.writeFieldBegin(FRONT_PORT_FIELD_DESC);
+        oprot.writeI32(struct.front_port);
+        oprot.writeFieldEnd();
+        oprot.writeFieldBegin(FRONT_CHNL_FIELD_DESC);
+        oprot.writeI32(struct.front_chnl);
+        oprot.writeFieldEnd();
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class pal_port_front_panel_port_to_dev_port_get_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_front_panel_port_to_dev_port_get_argsTupleScheme getScheme() {
+        return new pal_port_front_panel_port_to_dev_port_get_argsTupleScheme();
+      }
+    }
+
+    private static class pal_port_front_panel_port_to_dev_port_get_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<pal_port_front_panel_port_to_dev_port_get_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, pal_port_front_panel_port_to_dev_port_get_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetDev()) {
+          optionals.set(0);
+        }
+        if (struct.isSetFront_port()) {
+          optionals.set(1);
+        }
+        if (struct.isSetFront_chnl()) {
+          optionals.set(2);
+        }
+        oprot.writeBitSet(optionals, 3);
+        if (struct.isSetDev()) {
+          oprot.writeByte(struct.dev);
+        }
+        if (struct.isSetFront_port()) {
+          oprot.writeI32(struct.front_port);
+        }
+        if (struct.isSetFront_chnl()) {
+          oprot.writeI32(struct.front_chnl);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, pal_port_front_panel_port_to_dev_port_get_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(3);
+        if (incoming.get(0)) {
+          struct.dev = iprot.readByte();
+          struct.setDevIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.front_port = iprot.readI32();
+          struct.setFront_portIsSet(true);
+        }
+        if (incoming.get(2)) {
+          struct.front_chnl = iprot.readI32();
+          struct.setFront_chnlIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class pal_port_front_panel_port_to_dev_port_get_result implements org.apache.thrift.TBase<pal_port_front_panel_port_to_dev_port_get_result, pal_port_front_panel_port_to_dev_port_get_result._Fields>, java.io.Serializable, Cloneable, Comparable<pal_port_front_panel_port_to_dev_port_get_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("pal_port_front_panel_port_to_dev_port_get_result");
+
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.I32, (short)0);
+    private static final org.apache.thrift.protocol.TField OUCH_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new pal_port_front_panel_port_to_dev_port_get_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pal_port_front_panel_port_to_dev_port_get_resultTupleSchemeFactory();
+
+    public int success; // required
+    public InvalidPalOperation ouch; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      SUCCESS((short)0, "success"),
+      OUCH((short)1, "ouch");
+
+      private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
+          case 1: // OUCH
+            return OUCH;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    private static final int __SUCCESS_ISSET_ID = 0;
+    private byte __isset_bitfield = 0;
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32          , "pal_dev_port_t")));
+      tmpMap.put(_Fields.OUCH, new org.apache.thrift.meta_data.FieldMetaData("ouch", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidPalOperation.class)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pal_port_front_panel_port_to_dev_port_get_result.class, metaDataMap);
+    }
+
+    public pal_port_front_panel_port_to_dev_port_get_result() {
+    }
+
+    public pal_port_front_panel_port_to_dev_port_get_result(
+      int success,
+      InvalidPalOperation ouch)
+    {
+      this();
+      this.success = success;
+      setSuccessIsSet(true);
+      this.ouch = ouch;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public pal_port_front_panel_port_to_dev_port_get_result(pal_port_front_panel_port_to_dev_port_get_result other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.success = other.success;
+      if (other.isSetOuch()) {
+        this.ouch = new InvalidPalOperation(other.ouch);
+      }
+    }
+
+    public pal_port_front_panel_port_to_dev_port_get_result deepCopy() {
+      return new pal_port_front_panel_port_to_dev_port_get_result(this);
+    }
+
+    @Override
+    public void clear() {
+      setSuccessIsSet(false);
+      this.success = 0;
+      this.ouch = null;
+    }
+
+    public int getSuccess() {
+      return this.success;
+    }
+
+    public pal_port_front_panel_port_to_dev_port_get_result setSuccess(int success) {
+      this.success = success;
+      setSuccessIsSet(true);
+      return this;
+    }
+
+    public void unsetSuccess() {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
+    }
+
+    public InvalidPalOperation getOuch() {
+      return this.ouch;
+    }
+
+    public pal_port_front_panel_port_to_dev_port_get_result setOuch(InvalidPalOperation ouch) {
+      this.ouch = ouch;
+      return this;
+    }
+
+    public void unsetOuch() {
+      this.ouch = null;
+    }
+
+    /** Returns true if field ouch is set (has been assigned a value) and false otherwise */
+    public boolean isSetOuch() {
+      return this.ouch != null;
+    }
+
+    public void setOuchIsSet(boolean value) {
+      if (!value) {
+        this.ouch = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((Integer)value);
+        }
+        break;
+
+      case OUCH:
+        if (value == null) {
+          unsetOuch();
+        } else {
+          setOuch((InvalidPalOperation)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
+      case OUCH:
+        return getOuch();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
+      case OUCH:
+        return isSetOuch();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof pal_port_front_panel_port_to_dev_port_get_result)
+        return this.equals((pal_port_front_panel_port_to_dev_port_get_result)that);
+      return false;
+    }
+
+    public boolean equals(pal_port_front_panel_port_to_dev_port_get_result that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_success = true;
+      boolean that_present_success = true;
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (this.success != that.success)
+          return false;
+      }
+
+      boolean this_present_ouch = true && this.isSetOuch();
+      boolean that_present_ouch = true && that.isSetOuch();
+      if (this_present_ouch || that_present_ouch) {
+        if (!(this_present_ouch && that_present_ouch))
+          return false;
+        if (!this.ouch.equals(that.ouch))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + success;
+
+      hashCode = hashCode * 8191 + ((isSetOuch()) ? 131071 : 524287);
+      if (isSetOuch())
+        hashCode = hashCode * 8191 + ouch.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(pal_port_front_panel_port_to_dev_port_get_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetOuch()).compareTo(other.isSetOuch());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetOuch()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch, other.ouch);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+      }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("pal_port_front_panel_port_to_dev_port_get_result(");
+      boolean first = true;
+
+      sb.append("success:");
+      sb.append(this.success);
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ouch:");
+      if (this.ouch == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ouch);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class pal_port_front_panel_port_to_dev_port_get_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_front_panel_port_to_dev_port_get_resultStandardScheme getScheme() {
+        return new pal_port_front_panel_port_to_dev_port_get_resultStandardScheme();
+      }
+    }
+
+    private static class pal_port_front_panel_port_to_dev_port_get_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<pal_port_front_panel_port_to_dev_port_get_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, pal_port_front_panel_port_to_dev_port_get_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+                struct.success = iprot.readI32();
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 1: // OUCH
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ouch = new InvalidPalOperation();
+                struct.ouch.read(iprot);
+                struct.setOuchIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, pal_port_front_panel_port_to_dev_port_get_result struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.isSetSuccess()) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          oprot.writeI32(struct.success);
+          oprot.writeFieldEnd();
+        }
+        if (struct.ouch != null) {
+          oprot.writeFieldBegin(OUCH_FIELD_DESC);
+          struct.ouch.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class pal_port_front_panel_port_to_dev_port_get_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public pal_port_front_panel_port_to_dev_port_get_resultTupleScheme getScheme() {
+        return new pal_port_front_panel_port_to_dev_port_get_resultTupleScheme();
+      }
+    }
+
+    private static class pal_port_front_panel_port_to_dev_port_get_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<pal_port_front_panel_port_to_dev_port_get_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, pal_port_front_panel_port_to_dev_port_get_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetSuccess()) {
+          optionals.set(0);
+        }
+        if (struct.isSetOuch()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetSuccess()) {
+          oprot.writeI32(struct.success);
+        }
+        if (struct.isSetOuch()) {
+          struct.ouch.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, pal_port_front_panel_port_to_dev_port_get_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          struct.success = iprot.readI32();
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.ouch = new InvalidPalOperation();
+          struct.ouch.read(iprot);
+          struct.setOuchIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+}
diff --git a/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/pal/pal_autoneg_policy_t.java b/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/pal/pal_autoneg_policy_t.java
new file mode 100644
index 0000000..fc96151
--- /dev/null
+++ b/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/pal/pal_autoneg_policy_t.java
@@ -0,0 +1,44 @@
+package org.onosproject.drivers.barefoot.pro.pal;
+
+/**
+ * Autogenerated by Thrift Compiler (0.11.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+
+public enum pal_autoneg_policy_t implements org.apache.thrift.TEnum {
+  BF_AN_DEFAULT(0),
+  BF_AN_FORCE_ENABLE(1),
+  BF_AN_FORCE_DISABLE(2);
+
+  private final int value;
+
+  private pal_autoneg_policy_t(int value) {
+    this.value = value;
+  }
+
+  /**
+   * Get the integer value of this enum value, as defined in the Thrift IDL.
+   */
+  public int getValue() {
+    return value;
+  }
+
+  /**
+   * Find a the enum type by its integer value, as defined in the Thrift IDL.
+   * @return null if the value is not found.
+   */
+  public static pal_autoneg_policy_t findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return BF_AN_DEFAULT;
+      case 1:
+        return BF_AN_FORCE_ENABLE;
+      case 2:
+        return BF_AN_FORCE_DISABLE;
+      default:
+        return null;
+    }
+  }
+}
diff --git a/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/pal/pal_fec_type_t.java b/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/pal/pal_fec_type_t.java
new file mode 100644
index 0000000..0c87578
--- /dev/null
+++ b/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/pal/pal_fec_type_t.java
@@ -0,0 +1,44 @@
+package org.onosproject.drivers.barefoot.pro.pal;
+
+/**
+ * Autogenerated by Thrift Compiler (0.11.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+
+public enum pal_fec_type_t implements org.apache.thrift.TEnum {
+  BF_FEC_TYP_NONE(0),
+  BF_FEC_TYP_FIRECODE(1),
+  BF_FEC_TYP_REED_SOLOMON(2);
+
+  private final int value;
+
+  private pal_fec_type_t(int value) {
+    this.value = value;
+  }
+
+  /**
+   * Get the integer value of this enum value, as defined in the Thrift IDL.
+   */
+  public int getValue() {
+    return value;
+  }
+
+  /**
+   * Find a the enum type by its integer value, as defined in the Thrift IDL.
+   * @return null if the value is not found.
+   */
+  public static pal_fec_type_t findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return BF_FEC_TYP_NONE;
+      case 1:
+        return BF_FEC_TYP_FIRECODE;
+      case 2:
+        return BF_FEC_TYP_REED_SOLOMON;
+      default:
+        return null;
+    }
+  }
+}
diff --git a/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/pal/pal_loopback_mod_t.java b/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/pal/pal_loopback_mod_t.java
new file mode 100644
index 0000000..0f23204
--- /dev/null
+++ b/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/pal/pal_loopback_mod_t.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.drivers.barefoot.pro.pal;
+
+/**
+ * Autogenerated by Thrift Compiler (0.11.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+
+public enum pal_loopback_mod_t implements org.apache.thrift.TEnum {
+  BF_LPBK_NONE(0),
+  BF_LPBK_MAC_NEAR(1),
+  BF_LPBK_MAC_FAR(2),
+  BF_LPBK_PCS_NEAR(3),
+  BF_LPBK_SERDES_NEAR(4),
+  BF_LPBK_SERDES_FAR(5);
+
+  private final int value;
+
+  private pal_loopback_mod_t(int value) {
+    this.value = value;
+  }
+
+  /**
+   * Get the integer value of this enum value, as defined in the Thrift IDL.
+   */
+  public int getValue() {
+    return value;
+  }
+
+  /**
+   * Find a the enum type by its integer value, as defined in the Thrift IDL.
+   * @return null if the value is not found.
+   */
+  public static pal_loopback_mod_t findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return BF_LPBK_NONE;
+      case 1:
+        return BF_LPBK_MAC_NEAR;
+      case 2:
+        return BF_LPBK_MAC_FAR;
+      case 3:
+        return BF_LPBK_PCS_NEAR;
+      case 4:
+        return BF_LPBK_SERDES_NEAR;
+      case 5:
+        return BF_LPBK_SERDES_FAR;
+      default:
+        return null;
+    }
+  }
+}
diff --git a/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/pal/pal_oper_status_t.java b/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/pal/pal_oper_status_t.java
new file mode 100644
index 0000000..11df778
--- /dev/null
+++ b/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/pal/pal_oper_status_t.java
@@ -0,0 +1,41 @@
+package org.onosproject.drivers.barefoot.pro.pal;
+
+/**
+ * Autogenerated by Thrift Compiler (0.11.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+
+public enum pal_oper_status_t implements org.apache.thrift.TEnum {
+  BF_PORT_DOWN(0),
+  BF_PORT_UP(1);
+
+  private final int value;
+
+  private pal_oper_status_t(int value) {
+    this.value = value;
+  }
+
+  /**
+   * Get the integer value of this enum value, as defined in the Thrift IDL.
+   */
+  public int getValue() {
+    return value;
+  }
+
+  /**
+   * Find a the enum type by its integer value, as defined in the Thrift IDL.
+   * @return null if the value is not found.
+   */
+  public static pal_oper_status_t findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return BF_PORT_DOWN;
+      case 1:
+        return BF_PORT_UP;
+      default:
+        return null;
+    }
+  }
+}
diff --git a/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/pal/pal_port_speed_t.java b/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/pal/pal_port_speed_t.java
new file mode 100644
index 0000000..e083a84
--- /dev/null
+++ b/drivers/barefoot-pro/src/main/java/org/onosproject/drivers/barefoot/pro/pal/pal_port_speed_t.java
@@ -0,0 +1,62 @@
+package org.onosproject.drivers.barefoot.pro.pal;
+
+/**
+ * Autogenerated by Thrift Compiler (0.11.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+
+public enum pal_port_speed_t implements org.apache.thrift.TEnum {
+  BF_SPEED_NONE(0),
+  BF_SPEED_1G(1),
+  BF_SPEED_10G(2),
+  BF_SPEED_25G(3),
+  BF_SPEED_40G(4),
+  BF_SPEED_40G_NB(5),
+  BF_SPEED_50G(6),
+  BF_SPEED_100G(7),
+  BF_SPEED_40G_NON_BREAKABLE(8);
+
+  private final int value;
+
+  private pal_port_speed_t(int value) {
+    this.value = value;
+  }
+
+  /**
+   * Get the integer value of this enum value, as defined in the Thrift IDL.
+   */
+  public int getValue() {
+    return value;
+  }
+
+  /**
+   * Find a the enum type by its integer value, as defined in the Thrift IDL.
+   * @return null if the value is not found.
+   */
+  public static pal_port_speed_t findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return BF_SPEED_NONE;
+      case 1:
+        return BF_SPEED_1G;
+      case 2:
+        return BF_SPEED_10G;
+      case 3:
+        return BF_SPEED_25G;
+      case 4:
+        return BF_SPEED_40G;
+      case 5:
+        return BF_SPEED_40G_NB;
+      case 6:
+        return BF_SPEED_50G;
+      case 7:
+        return BF_SPEED_100G;
+      case 8:
+        return BF_SPEED_40G_NON_BREAKABLE;
+      default:
+        return null;
+    }
+  }
+}
diff --git a/drivers/barefoot-pro/src/main/resources/barefoot-pro-drivers.xml b/drivers/barefoot-pro/src/main/resources/barefoot-pro-drivers.xml
new file mode 100644
index 0000000..03f65c4
--- /dev/null
+++ b/drivers/barefoot-pro/src/main/resources/barefoot-pro-drivers.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Copyright 2018-present Open Networking Foundation
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+<drivers>
+    <driver name="barefoot-pro" manufacturer="Barefoot Networks" hwVersion="1.0" swVersion="1.0" extends="barefoot">
+        <behaviour api="org.onosproject.net.behaviour.PiPipelineProgrammable"
+                   impl="org.onosproject.drivers.barefoot.pro.TofinoProPipelineProgrammable"/>
+        <property name="supportTableCounters">true</property>
+    </driver>
+</drivers>
+
diff --git a/drivers/cavium-pro/BUCK b/drivers/cavium-pro/BUCK
new file mode 100644
index 0000000..2a20b32
--- /dev/null
+++ b/drivers/cavium-pro/BUCK
@@ -0,0 +1,26 @@
+COMPILE_DEPS = [
+    '//lib:CORE_DEPS',
+    '//drivers/p4runtime:onos-drivers-p4runtime',
+    '//drivers/bmv2:onos-drivers-bmv2',
+]
+
+BUNDLES = [
+    ':onos-drivers-cavium-pro',
+]
+
+osgi_jar(
+    deps = COMPILE_DEPS,
+)
+
+onos_app(
+    app_name = 'org.onosproject.drivers.cavium-pro',
+    title = 'Cavium PRO Drivers',
+    category = 'Drivers',
+    url = 'http://onosproject.org',
+    description = 'Adds support for Cavium XPliant-based devices using P4Runtime',
+    included_bundles = BUNDLES,
+    required_apps = [
+        'org.onosproject.drivers.bmv2',
+        'org.onosproject.pipelines.fabric',
+    ],
+)
diff --git a/drivers/cavium-pro/src/main/java/org/onosproject/drivers/cavium/pro/CaviumProDriversLoader.java b/drivers/cavium-pro/src/main/java/org/onosproject/drivers/cavium/pro/CaviumProDriversLoader.java
new file mode 100644
index 0000000..0e124ac
--- /dev/null
+++ b/drivers/cavium-pro/src/main/java/org/onosproject/drivers/cavium/pro/CaviumProDriversLoader.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.drivers.cavium.pro;
+
+import org.apache.felix.scr.annotations.Component;
+import org.onosproject.net.driver.AbstractDriverLoader;
+
+/**
+ * Loader for the Cavium PRO device drivers.
+ */
+@Component(immediate = true)
+public class CaviumProDriversLoader extends AbstractDriverLoader {
+
+    public CaviumProDriversLoader() {
+        super("/cavium-pro-drivers.xml");
+    }
+}
diff --git a/drivers/cavium-pro/src/main/java/org/onosproject/drivers/cavium/pro/XpliantProPipelineProgrammable.java b/drivers/cavium-pro/src/main/java/org/onosproject/drivers/cavium/pro/XpliantProPipelineProgrammable.java
new file mode 100644
index 0000000..eb773e3
--- /dev/null
+++ b/drivers/cavium-pro/src/main/java/org/onosproject/drivers/cavium/pro/XpliantProPipelineProgrammable.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.drivers.cavium.pro;
+
+import org.onosproject.drivers.bmv2.Bmv2PipelineProgrammable;
+import org.onosproject.net.behaviour.PiPipelineProgrammable;
+import org.onosproject.net.pi.model.PiPipeconf;
+import org.onosproject.net.pi.model.PiPipeconfId;
+import org.onosproject.net.pi.service.PiPipeconfService;
+
+import java.nio.ByteBuffer;
+import java.util.Optional;
+
+import static com.google.common.base.Preconditions.checkArgument;
+import static java.lang.String.format;
+
+/**
+ * Implementation of the PiPipelineProgrammable behaviour for a Xpliant-based
+ * switch.
+ */
+public class XpliantProPipelineProgrammable extends Bmv2PipelineProgrammable
+        implements PiPipelineProgrammable {
+
+    private static final PiPipeconfId FABRIC_PIPECONF_ID =
+            new PiPipeconfId("org.onosproject.pipelines.fabric");
+
+    @Override
+    public ByteBuffer createDeviceDataBuffer(PiPipeconf pipeconf) {
+        checkArgument(pipeconf.id().equals(FABRIC_PIPECONF_ID),
+                      format("Cannot program XPliant device with a pipeconf " +
+                                     "other than '%s' (found '%s')",
+                             FABRIC_PIPECONF_ID, pipeconf.id()));
+        return super.createDeviceDataBuffer(pipeconf);
+    }
+
+    @Override
+    public Optional<PiPipeconf> getDefaultPipeconf() {
+        return handler().get(PiPipeconfService.class)
+                .getPipeconf(FABRIC_PIPECONF_ID);
+    }
+}
diff --git a/drivers/cavium-pro/src/main/java/org/onosproject/drivers/cavium/pro/package-info.java b/drivers/cavium-pro/src/main/java/org/onosproject/drivers/cavium/pro/package-info.java
new file mode 100644
index 0000000..079409f
--- /dev/null
+++ b/drivers/cavium-pro/src/main/java/org/onosproject/drivers/cavium/pro/package-info.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Package for Cavium PRO device drivers.
+ */
+package org.onosproject.drivers.cavium.pro;
diff --git a/drivers/cavium-pro/src/main/resources/cavium-pro-drivers.xml b/drivers/cavium-pro/src/main/resources/cavium-pro-drivers.xml
new file mode 100644
index 0000000..5dc2e6a
--- /dev/null
+++ b/drivers/cavium-pro/src/main/resources/cavium-pro-drivers.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Copyright 2018-present Open Networking Foundation
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+<drivers>
+    <driver name="cavium-pro" manufacturer="Cavium" hwVersion="1.0" swVersion="1.0" extends="bmv2">
+        <behaviour api="org.onosproject.net.behaviour.PiPipelineProgrammable"
+                   impl="org.onosproject.drivers.cavium.pro.XpliantProPipelineProgrammable"/>
+    </driver>
+</drivers>
+
diff --git a/drivers/mellanox-pro/BUCK b/drivers/mellanox-pro/BUCK
new file mode 100644
index 0000000..4b5f336
--- /dev/null
+++ b/drivers/mellanox-pro/BUCK
@@ -0,0 +1,25 @@
+COMPILE_DEPS = [
+    '//lib:CORE_DEPS',
+    '//drivers/p4runtime:onos-drivers-p4runtime',
+]
+
+BUNDLES = [
+    ':onos-drivers-mellanox-pro',
+]
+
+osgi_jar(
+    deps = COMPILE_DEPS,
+)
+
+onos_app(
+    app_name = 'org.onosproject.drivers.mellanox-pro',
+    title = 'Mellanox PRO Drivers',
+    category = 'Drivers',
+    url = 'http://onosproject.org',
+    description = 'Adds support for Mellanox Spectrum-based devices using P4Runtime',
+    included_bundles = BUNDLES,
+    required_apps = [
+        'org.onosproject.drivers.p4runtime',
+        'org.onosproject.pipelines.fabric',
+    ],
+)
diff --git a/drivers/mellanox-pro/src/main/java/org/onosproject/drivers/mellanox/pro/MellanoxProDriversLoader.java b/drivers/mellanox-pro/src/main/java/org/onosproject/drivers/mellanox/pro/MellanoxProDriversLoader.java
new file mode 100644
index 0000000..31534ec
--- /dev/null
+++ b/drivers/mellanox-pro/src/main/java/org/onosproject/drivers/mellanox/pro/MellanoxProDriversLoader.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.drivers.mellanox.pro;
+
+import org.apache.felix.scr.annotations.Component;
+import org.onosproject.net.driver.AbstractDriverLoader;
+
+/**
+ * Loader for the Mellanox PRO device drivers.
+ */
+@Component(immediate = true)
+public class MellanoxProDriversLoader extends AbstractDriverLoader {
+
+    public MellanoxProDriversLoader() {
+        super("/mellanox-pro-drivers.xml");
+    }
+}
diff --git a/drivers/mellanox-pro/src/main/java/org/onosproject/drivers/mellanox/pro/SpectrumProPipelineProgrammable.java b/drivers/mellanox-pro/src/main/java/org/onosproject/drivers/mellanox/pro/SpectrumProPipelineProgrammable.java
new file mode 100644
index 0000000..01598b7
--- /dev/null
+++ b/drivers/mellanox-pro/src/main/java/org/onosproject/drivers/mellanox/pro/SpectrumProPipelineProgrammable.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.drivers.mellanox.pro;
+
+import org.onosproject.drivers.p4runtime.AbstractP4RuntimePipelineProgrammable;
+import org.onosproject.net.behaviour.PiPipelineProgrammable;
+import org.onosproject.net.pi.model.PiPipeconf;
+import org.onosproject.net.pi.model.PiPipeconfId;
+import org.onosproject.net.pi.service.PiPipeconfService;
+
+import java.nio.ByteBuffer;
+import java.util.Optional;
+
+import static com.google.common.base.Preconditions.checkArgument;
+import static java.lang.String.format;
+
+/**
+ * Implementation of the PiPipelineProgrammable behaviour for a Spectrum-based
+ * switch.
+ */
+public class SpectrumProPipelineProgrammable
+        extends AbstractP4RuntimePipelineProgrammable
+        implements PiPipelineProgrammable {
+
+    private static final PiPipeconfId FABRIC_PIPECONF_ID =
+            new PiPipeconfId("org.onosproject.pipelines.fabric");
+
+    @Override
+    public ByteBuffer createDeviceDataBuffer(PiPipeconf pipeconf) {
+        checkArgument(pipeconf.id().equals(FABRIC_PIPECONF_ID),
+                      format("Cannot program Spectrum device with a pipeconf " +
+                                     "other than '%s' (found '%s')",
+                             FABRIC_PIPECONF_ID, pipeconf.id()));
+        // [MWC-2018] Dummy value. The chip is already configured with fabric.p4
+        return ByteBuffer.allocate(1).put((byte) 1);
+    }
+
+    @Override
+    public Optional<PiPipeconf> getDefaultPipeconf() {
+        return handler().get(PiPipeconfService.class)
+                .getPipeconf(FABRIC_PIPECONF_ID);
+    }
+}
diff --git a/drivers/mellanox-pro/src/main/java/org/onosproject/drivers/mellanox/pro/package-info.java b/drivers/mellanox-pro/src/main/java/org/onosproject/drivers/mellanox/pro/package-info.java
new file mode 100644
index 0000000..5930379
--- /dev/null
+++ b/drivers/mellanox-pro/src/main/java/org/onosproject/drivers/mellanox/pro/package-info.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Package for Mellanox PRO device drivers.
+ */
+package org.onosproject.drivers.mellanox.pro;
diff --git a/drivers/mellanox-pro/src/main/resources/mellanox-pro-drivers.xml b/drivers/mellanox-pro/src/main/resources/mellanox-pro-drivers.xml
new file mode 100644
index 0000000..fab5c12
--- /dev/null
+++ b/drivers/mellanox-pro/src/main/resources/mellanox-pro-drivers.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Copyright 2018-present Open Networking Foundation
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+<drivers>
+    <driver name="mellanox-pro" manufacturer="Mellanox" hwVersion="1.0" swVersion="1.0" extends="p4runtime">
+        <behaviour api="org.onosproject.net.behaviour.PiPipelineProgrammable"
+                   impl="org.onosproject.drivers.mellanox.pro.SpectrumProPipelineProgrammable"/>
+        <property name="noHashedTable">true</property>
+    </driver>
+</drivers>
+
diff --git a/fpcagent b/fpcagent
new file mode 160000
index 0000000..d73db0e
--- /dev/null
+++ b/fpcagent
@@ -0,0 +1 @@
+Subproject commit d73db0ed381c581bab1a7cbef9e6b260647c90f9
diff --git a/mwc-bpr-docker.sh b/mwc-bpr-docker.sh
new file mode 100755
index 0000000..e83febe
--- /dev/null
+++ b/mwc-bpr-docker.sh
@@ -0,0 +1,11 @@
+#!/usr/bin/env bash
+
+# Builds, push and run an ONOS docker image based on this directory
+
+set -ex
+
+docker build -t onos-fabric-mwc .
+docker tag onos-fabric-mwc 10.128.13.3:5000/onosproject/onos:candidate
+docker push 10.128.13.3:5000/onosproject/onos:candidate
+
+ssh head "cd /opt/onos_fabric/ && docker-compose down && docker-compose pull && docker-compose up -d"
diff --git a/mwc-fabric-restart.sh b/mwc-fabric-restart.sh
new file mode 100755
index 0000000..c21c5a7
--- /dev/null
+++ b/mwc-fabric-restart.sh
@@ -0,0 +1,3 @@
+#!/usr/bin/env bash
+
+ssh head "cd /opt/onos_fabric/ && docker-compose down && docker-compose up -d"
diff --git a/mwc-provision-dev.sh b/mwc-provision-dev.sh
new file mode 100755
index 0000000..62d8782
--- /dev/null
+++ b/mwc-provision-dev.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/env bash
+
+MWC_HEAD_IP="10.128.13.3"
+
+set -ex
+
+onos-netcfg ${MWC_HEAD_IP} ${ONOS_ROOT}/p4-pod-configs/dev-pod/tofino-leaf1-netcfg.json
+sleep 5
+onos-netcfg ${MWC_HEAD_IP} ${ONOS_ROOT}/p4-pod-configs/dev-pod/tofino-leaf2-netcfg.json
+sleep 5
+onos-netcfg ${MWC_HEAD_IP} ${ONOS_ROOT}/p4-pod-configs/dev-pod/mellanox-spine2.json
+sleep 5
+onos-netcfg ${MWC_HEAD_IP} ${ONOS_ROOT}/p4-pod-configs/dev-pod/cavium-spine1.json
+sleep 5
+onos-netcfg ${MWC_HEAD_IP} ${ONOS_ROOT}/p4-pod-configs/dev-pod/mwc-demo.json
+sleep 10
+onos-netcfg ${MWC_HEAD_IP} ${ONOS_ROOT}/p4-pod-configs/dev-pod/hosts.json
+sleep 5
+bash fpcagent/scripts/addP4DPN.sh ${MWC_HEAD_IP} device:tofino:leaf2
diff --git a/mwc-provision.sh b/mwc-provision.sh
new file mode 100755
index 0000000..f8a2e26
--- /dev/null
+++ b/mwc-provision.sh
@@ -0,0 +1,17 @@
+#!/usr/bin/env bash
+
+MWC_HEAD_IP="10.128.13.3"
+
+set -ex
+
+onos-netcfg ${MWC_HEAD_IP} ${ONOS_ROOT}/p4-pod-configs/mwc-pod/tofino-leaf1-netcfg.json
+sleep 5
+onos-netcfg ${MWC_HEAD_IP} ${ONOS_ROOT}/p4-pod-configs/mwc-pod/tofino-leaf2-netcfg.json
+sleep 5
+onos-netcfg ${MWC_HEAD_IP} ${ONOS_ROOT}/p4-pod-configs/mwc-pod/mellanox-spine2.json
+sleep 5
+onos-netcfg ${MWC_HEAD_IP} ${ONOS_ROOT}/p4-pod-configs/mwc-pod/cavium-spine1.json
+sleep 10
+onos-netcfg ${MWC_HEAD_IP} ${ONOS_ROOT}/p4-pod-configs/mwc-pod/mwc-demo.json
+sleep 10
+bash fpcagent/scripts/addP4DPN.sh ${MWC_HEAD_IP} device:tofino:leaf2
diff --git a/mwc.defs b/mwc.defs
new file mode 100644
index 0000000..586dfc3
--- /dev/null
+++ b/mwc.defs
@@ -0,0 +1,13 @@
+include_defs('//modules.defs')
+
+MWC_APPS = [
+    '//pipelines/fabric-pro:onos-pipelines-fabric-pro-oar',
+    '//drivers/barefoot-pro:onos-drivers-barefoot-pro-oar',
+    '//drivers/cavium-pro:onos-drivers-cavium-pro-oar',
+    '//drivers/mellanox-pro:onos-drivers-mellanox-pro-oar',
+    '//fpcagent/apps/fpcagent:onos-fpcagent-apps-fpcagent-oar',
+    '//fpcagent/models/fpcagent:onos-fpcagent-models-fpcagent-oar',
+]
+
+APPS = APPS + MWC_APPS
+
diff --git a/onos.defs b/onos.defs
index ab661fc..75abb8e 100644
--- a/onos.defs
+++ b/onos.defs
@@ -6,3 +6,4 @@
 APP_PREFIX = ONOS_GROUP_ID + '.'
 
 include_defs('//modules.defs')
+include_defs('//mwc.defs')
diff --git a/p4-pod-configs/dev-pod/cavium-spine1.json b/p4-pod-configs/dev-pod/cavium-spine1.json
new file mode 100644
index 0000000..0749d84
--- /dev/null
+++ b/p4-pod-configs/dev-pod/cavium-spine1.json
@@ -0,0 +1,41 @@
+{
+  "devices": {
+    "device:cavium:spine1": {
+      "chassisId": "000000000226",
+      "generalprovider": {
+        "p4runtime": {
+          "ip": "10.128.13.101",
+          "deviceKeyId": "p4runtime:device:cavium:spine1",
+          "port": 50051,
+          "deviceId": 1
+        }
+      },
+      "piPipeconf": {
+        "piPipeconfId": "org.onosproject.pipelines.fabric"
+      },
+      "ports": {
+        "9": {
+          "name": "9",
+          "speed": 100000,
+          "enabled": true,
+          "number": 9,
+          "removed": false,
+          "type": "copper"
+        },
+        "10": {
+          "name": "10",
+          "speed": 100000,
+          "enabled": true,
+          "number": 10,
+          "removed": false,
+          "type": "copper"
+        }
+      },
+      "basic": {
+        "driver": "cavium-pro",
+        "name": "spine1"
+      }
+    }
+  }
+}
+
diff --git a/p4-pod-configs/dev-pod/hosts.json b/p4-pod-configs/dev-pod/hosts.json
new file mode 100644
index 0000000..41fb944
--- /dev/null
+++ b/p4-pod-configs/dev-pod/hosts.json
@@ -0,0 +1,46 @@
+{
+  "hosts": {
+    "00:1E:67:D2:EC:7F/None": {
+      "basic": {
+        "ips": ["10.6.1.3"],
+        "locations": ["device:tofino:leaf1/180"]
+      }
+    },
+    "00:AD:DE:00:00:80/None": {
+      "basic": {
+        "ips": ["119.0.0.10", "118.0.0.10"],
+        "locations": ["device:tofino:leaf1/181"]
+      }
+    },
+    "00:1E:67:D2:EE:EE/None": {
+      "basic": {
+        "ips": ["10.6.2.2"],
+        "locations": ["device:tofino:leaf2/180"]
+      }
+    },
+    "00:9D:0F:57:D5:BD/None": {
+      "basic": {
+        "ips": ["150.0.0.10"],
+        "locations": ["device:tofino:leaf2/182"]
+      }
+    },
+    "fa:16:3e:65:60:e1/None": {
+      "basic": {
+        "ips": ["119.0.0.2"],
+        "locations": ["device:tofino:leaf1/180"]
+      }
+    },
+    "fa:16:3e:bc:0c:27/None": {
+      "basic": {
+        "ips": ["118.0.0.2"],
+        "locations": ["device:tofino:leaf1/180"]
+      }
+    },
+    "FA:16:3E:45:13:C2/None": {
+      "basic": {
+        "ips": ["118.0.0.5"],
+        "locations": ["device:tofino:leaf1/180"]
+      }
+    }
+  }
+}
diff --git a/p4-pod-configs/dev-pod/mellanox-spine2.json b/p4-pod-configs/dev-pod/mellanox-spine2.json
new file mode 100644
index 0000000..c96f1fd
--- /dev/null
+++ b/p4-pod-configs/dev-pod/mellanox-spine2.json
@@ -0,0 +1,39 @@
+{
+  "devices": {
+    "device:mellanox:spine2": {
+      "generalprovider": {
+        "p4runtime": {
+          "ip": "10.128.13.103",
+          "deviceKeyId": "p4runtime:device:mellanox:spine2",
+          "port": 50051,
+          "deviceId": 0
+        }
+      },
+      "piPipeconf": {
+        "piPipeconfId": "org.onosproject.pipelines.fabric"
+      },
+      "ports": {
+        "1/0": {
+          "name": "1/0",
+          "speed": 100000,
+          "enabled": true,
+          "number": 1,
+          "removed": false,
+          "type": "copper"
+        },
+        "2/0": {
+          "name": "2/0",
+          "speed": 100000,
+          "enabled": true,
+          "number": 2,
+          "removed": false,
+          "type": "copper"
+        }
+      },
+      "basic": {
+        "driver": "mellanox-pro",
+        "name": "spine2"
+      }
+    }
+  }
+}
diff --git a/p4-pod-configs/dev-pod/mwc-demo.json b/p4-pod-configs/dev-pod/mwc-demo.json
new file mode 100644
index 0000000..f84b1e3
--- /dev/null
+++ b/p4-pod-configs/dev-pod/mwc-demo.json
@@ -0,0 +1,123 @@
+{
+  "devices": {
+    "device:tofino:leaf1": {
+      "segmentrouting": {
+        "name": "leaf1",
+        "ipv4NodeSid": 204,
+        "ipv4Loopback": "192.168.0.204",
+        "ipv6NodeSid": 214,
+        "ipv6Loopback": "2000::c0a8:0204",
+        "routerMac": "00:00:00:00:02:04",
+        "isEdgeRouter": true,
+        "adjacencySids": []
+      }
+    },
+    "device:tofino:leaf2": {
+      "segmentrouting": {
+        "name": "leaf2",
+        "ipv4NodeSid": 205,
+        "ipv4Loopback": "192.168.0.205",
+        "ipv6NodeSid": 215,
+        "ipv6Loopback": "2000::c0a8:0205",
+        "routerMac": "00:00:00:00:02:05",
+        "isEdgeRouter": true,
+        "adjacencySids": []
+      }
+    },
+    "device:cavium:spine1": {
+      "segmentrouting": {
+        "name": "spine1",
+        "ipv4NodeSid": 226,
+        "ipv4Loopback": "192.168.0.226",
+        "ipv6NodeSid": 236,
+        "ipv6Loopback": "2000::c0a8:0226",
+        "routerMac": "00:00:00:00:02:26",
+        "isEdgeRouter": false,
+        "adjacencySids": []
+      }
+    },
+    "device:mellanox:spine2": {
+      "segmentrouting": {
+        "name": "spine2",
+        "ipv4NodeSid": 227,
+        "ipv4Loopback": "192.168.0.227",
+        "ipv6NodeSid": 237,
+        "ipv6Loopback": "2000::c0a8:0227",
+        "routerMac": "00:00:00:00:02:27",
+        "isEdgeRouter": false,
+        "adjacencySids": []
+      }
+    }
+  },
+  "ports": {
+    "device:tofino:leaf1/180": {
+      "interfaces": [
+        {
+          "name": "leaf1-3/0-compute-1",
+          "ips": [
+            "10.6.1.254/24",
+            "118.0.0.254/24",
+            "119.0.0.254/24"
+          ],
+          "vlan-untagged": 10
+        }
+      ]
+    },
+    "device:tofino:leaf1/181": {
+      "interfaces": [
+        {
+          "name": "leaf1-3/1------mgmt-25-----enb",
+          "ips": [
+            "118.0.0.254/24",
+            "119.0.0.254/24"
+          ],
+          "vlan-untagged": 10
+        }
+      ]
+    },
+    "device:tofino:leaf1/182": {
+      "interfaces": [
+        {
+          "name": "leaf1-3/2----head-node",
+          "ips": [
+            "118.0.0.254/24"
+          ],
+          "vlan-untagged": 10
+        }
+      ]
+    },
+    "device:tofino:leaf2/180": {
+      "interfaces": [
+        {
+          "name": "leaf2-3/0-compute-2",
+          "ips": [
+            "10.6.2.254/24"
+          ],
+          "vlan-untagged": 20
+        }
+      ]
+    },
+    "device:tofino:leaf2/181": {
+      "interfaces": [
+        {
+          "name": "leaf2-3/1-------mgmt-26---enb",
+          "ips": [
+            "140.0.0.2/24"
+          ],
+          "vlan-untagged": 140
+        }
+      ]
+    },
+    "device:tofino:leaf2/182": {
+      "interfaces": [
+        {
+          "name": "leaf2-3/2-------mgmt-27---ARM",
+          "ips": [
+            "150.0.0.254/24"
+          ],
+          "vlan-untagged": 150
+        }
+      ]
+    }
+  }
+}
diff --git a/p4-pod-configs/dev-pod/tofino-leaf1-netcfg.json b/p4-pod-configs/dev-pod/tofino-leaf1-netcfg.json
new file mode 100644
index 0000000..10b005a
--- /dev/null
+++ b/p4-pod-configs/dev-pod/tofino-leaf1-netcfg.json
@@ -0,0 +1,64 @@
+{
+  "devices": {
+    "device:tofino:leaf1": {
+      "chassisId": "000000000204",
+      "generalprovider": {
+        "p4runtime": {
+          "ip": "10.128.13.221",
+          "deviceKeyId": "p4runtime:device:tofino:leaf1",
+          "port": 50051,
+          "deviceId": 0
+        }
+      },
+      "piPipeconf": {
+        "piPipeconfId": "org.onosproject.pipelines.fabric.mavericks"
+      },
+      "ports": {
+        "1/0": {
+          "name": "1/0",
+          "speed": 100000,
+          "enabled": true,
+          "number": 188,
+          "removed": false,
+          "type": "copper"
+        },
+        "2/0": {
+          "name": "2/0",
+          "speed": 100000,
+          "enabled": true,
+          "number": 184,
+          "removed": false,
+          "type": "copper"
+        },
+        "3/0": {
+          "name": "3/0",
+          "speed": 10000,
+          "enabled": true,
+          "number": 180,
+          "removed": false,
+          "type": "copper"
+        },
+        "3/1": {
+          "name": "3/1",
+          "speed": 10000,
+          "enabled": true,
+          "number": 181,
+          "removed": false,
+          "type": "copper"
+        },
+        "3/2": {
+          "name": "3/2",
+          "speed": 10000,
+          "enabled": true,
+          "number": 182,
+          "removed": false,
+          "type": "copper"
+        }
+      },
+      "basic": {
+        "driver": "barefoot-pro",
+        "name": "leaf1"
+      }
+    }
+  }
+}
diff --git a/p4-pod-configs/dev-pod/tofino-leaf2-netcfg.json b/p4-pod-configs/dev-pod/tofino-leaf2-netcfg.json
new file mode 100644
index 0000000..19868d3
--- /dev/null
+++ b/p4-pod-configs/dev-pod/tofino-leaf2-netcfg.json
@@ -0,0 +1,64 @@
+{
+  "devices": {
+    "device:tofino:leaf2": {
+      "chassisId": "000000000205",
+      "generalprovider": {
+        "p4runtime": {
+          "ip": "10.128.13.222",
+          "deviceKeyId": "p4runtime:device:tofino:leaf2",
+          "port": 50051,
+          "deviceId": 0
+        }
+      },
+      "piPipeconf": {
+        "piPipeconfId": "org.onosproject.pipelines.fabric-spgw.mavericks"
+      },
+      "ports": {
+        "1/0": {
+          "name": "1/0",
+          "speed": 100000,
+          "enabled": true,
+          "number": 188,
+          "removed": false,
+          "type": "copper"
+        },
+        "2/0": {
+          "name": "2/0",
+          "speed": 100000,
+          "enabled": true,
+          "number": 184,
+          "removed": false,
+          "type": "copper"
+        },
+        "3/0": {
+          "name": "3/0",
+          "speed": 10000,
+          "enabled": true,
+          "number": 180,
+          "removed": false,
+          "type": "copper"
+        },
+        "3/1": {
+          "name": "3/1",
+          "speed": 10000,
+          "enabled": true,
+          "number": 181,
+          "removed": false,
+          "type": "copper"
+        },
+        "3/2": {
+          "name": "3/2",
+          "speed": 10000,
+          "enabled": true,
+          "number": 182,
+          "removed": false,
+          "type": "copper"
+        }
+      },
+      "basic": {
+        "driver": "barefoot-pro",
+        "name": "leaf2"
+      }
+    }
+  }
+}
diff --git a/p4-pod-configs/enodeb/vlan-config.sh b/p4-pod-configs/enodeb/vlan-config.sh
new file mode 100644
index 0000000..94ca5b9
--- /dev/null
+++ b/p4-pod-configs/enodeb/vlan-config.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+# Reset VLANs
+vconfig rem eth0.1
+
+set -e -x
+
+# Set VLANs
+vconfig add eth0 1
+
+ifconfig eth0 up
+
+# Internal (for management and MME2)
+ifconfig eth0.1 up
+ifconfig eth0.1 10.6.0.200/24 up
+
+# Slice1 (Leaf1)
+ip addr add 118.0.0.10/24 dev eth0
+ip addr add 119.0.0.10/24 dev eth0
+
+# route to slice 2 and ARM (140.0.0.2/24 and 150.0.0.10/24)
+ip route add 0.0.0.0/0 via 119.0.0.254
diff --git a/p4-pod-configs/mgmt-sw/running-config.cfg b/p4-pod-configs/mgmt-sw/running-config.cfg
new file mode 100644
index 0000000..0ffaeb1
--- /dev/null
+++ b/p4-pod-configs/mgmt-sw/running-config.cfg
Binary files differ
diff --git a/p4-pod-configs/mwc-pod/cavium-spine1.json b/p4-pod-configs/mwc-pod/cavium-spine1.json
new file mode 100644
index 0000000..0749d84
--- /dev/null
+++ b/p4-pod-configs/mwc-pod/cavium-spine1.json
@@ -0,0 +1,41 @@
+{
+  "devices": {
+    "device:cavium:spine1": {
+      "chassisId": "000000000226",
+      "generalprovider": {
+        "p4runtime": {
+          "ip": "10.128.13.101",
+          "deviceKeyId": "p4runtime:device:cavium:spine1",
+          "port": 50051,
+          "deviceId": 1
+        }
+      },
+      "piPipeconf": {
+        "piPipeconfId": "org.onosproject.pipelines.fabric"
+      },
+      "ports": {
+        "9": {
+          "name": "9",
+          "speed": 100000,
+          "enabled": true,
+          "number": 9,
+          "removed": false,
+          "type": "copper"
+        },
+        "10": {
+          "name": "10",
+          "speed": 100000,
+          "enabled": true,
+          "number": 10,
+          "removed": false,
+          "type": "copper"
+        }
+      },
+      "basic": {
+        "driver": "cavium-pro",
+        "name": "spine1"
+      }
+    }
+  }
+}
+
diff --git a/p4-pod-configs/mwc-pod/mellanox-spine2.json b/p4-pod-configs/mwc-pod/mellanox-spine2.json
new file mode 100644
index 0000000..c96f1fd
--- /dev/null
+++ b/p4-pod-configs/mwc-pod/mellanox-spine2.json
@@ -0,0 +1,39 @@
+{
+  "devices": {
+    "device:mellanox:spine2": {
+      "generalprovider": {
+        "p4runtime": {
+          "ip": "10.128.13.103",
+          "deviceKeyId": "p4runtime:device:mellanox:spine2",
+          "port": 50051,
+          "deviceId": 0
+        }
+      },
+      "piPipeconf": {
+        "piPipeconfId": "org.onosproject.pipelines.fabric"
+      },
+      "ports": {
+        "1/0": {
+          "name": "1/0",
+          "speed": 100000,
+          "enabled": true,
+          "number": 1,
+          "removed": false,
+          "type": "copper"
+        },
+        "2/0": {
+          "name": "2/0",
+          "speed": 100000,
+          "enabled": true,
+          "number": 2,
+          "removed": false,
+          "type": "copper"
+        }
+      },
+      "basic": {
+        "driver": "mellanox-pro",
+        "name": "spine2"
+      }
+    }
+  }
+}
diff --git a/p4-pod-configs/mwc-pod/mwc-demo.json b/p4-pod-configs/mwc-pod/mwc-demo.json
new file mode 100644
index 0000000..e53acd4
--- /dev/null
+++ b/p4-pod-configs/mwc-pod/mwc-demo.json
@@ -0,0 +1,112 @@
+{
+  "devices": {
+    "device:tofino:leaf1": {
+      "segmentrouting": {
+        "name": "leaf1",
+        "ipv4NodeSid": 204,
+        "ipv4Loopback": "192.168.0.204",
+        "ipv6NodeSid": 214,
+        "ipv6Loopback": "2000::c0a8:0204",
+        "routerMac": "00:00:00:00:02:04",
+        "isEdgeRouter": true,
+        "adjacencySids": []
+      }
+    },
+    "device:tofino:leaf2": {
+      "segmentrouting": {
+        "name": "leaf2",
+        "ipv4NodeSid": 205,
+        "ipv4Loopback": "192.168.0.205",
+        "ipv6NodeSid": 215,
+        "ipv6Loopback": "2000::c0a8:0205",
+        "routerMac": "00:00:00:00:02:05",
+        "isEdgeRouter": true,
+        "adjacencySids": []
+      }
+    },
+    "device:cavium:spine1": {
+      "segmentrouting": {
+        "name": "spine1",
+        "ipv4NodeSid": 226,
+        "ipv4Loopback": "192.168.0.226",
+        "ipv6NodeSid": 236,
+        "ipv6Loopback": "2000::c0a8:0226",
+        "routerMac": "00:00:00:00:02:26",
+        "isEdgeRouter": false,
+        "adjacencySids": []
+      }
+    },
+    "device:mellanox:spine2": {
+      "segmentrouting": {
+        "name": "spine2",
+        "ipv4NodeSid": 227,
+        "ipv4Loopback": "192.168.0.227",
+        "ipv6NodeSid": 237,
+        "ipv6Loopback": "2000::c0a8:0227",
+        "routerMac": "00:00:00:00:02:27",
+        "isEdgeRouter": false,
+        "adjacencySids": []
+      }
+    }
+  },
+  "ports": {
+    "device:tofino:leaf1/144": {
+      "interfaces": [
+        {
+          "name": "leaf1-3/0-compute-1",
+          "ips": [
+            "10.6.1.254/24",
+            "118.0.0.254/24",
+            "119.0.0.254/24"
+          ],
+          "vlan-untagged": 10
+        }
+      ]
+    },
+    "device:tofino:leaf1/145": {
+      "interfaces": [
+        {
+          "name": "leaf1-3/1------mgmt-25-----enb",
+          "ips": [
+            "118.0.0.254/24",
+            "119.0.0.254/24"
+          ],
+          "vlan-untagged": 10
+        }
+      ]
+    },
+    "device:tofino:leaf2/144": {
+      "interfaces": [
+        {
+          "name": "leaf2-3/0-compute-2",
+          "ips": [
+            "10.6.2.254/24"
+          ],
+          "vlan-untagged": 20
+        }
+      ]
+    },
+    "device:tofino:leaf2/145": {
+      "interfaces": [
+        {
+          "name": "leaf2-3/1-------mgmt-26---enb",
+          "ips": [
+            "140.0.0.2/24"
+          ],
+          "vlan-untagged": 140
+        }
+      ]
+    },
+    "device:tofino:leaf2/146": {
+      "interfaces": [
+        {
+          "name": "leaf2-3/2-------mgmt-27---ARM",
+          "ips": [
+            "150.0.0.254/24"
+          ],
+          "vlan-untagged": 150
+        }
+      ]
+    }
+  }
+}
diff --git a/p4-pod-configs/mwc-pod/tofino-leaf1-netcfg.json b/p4-pod-configs/mwc-pod/tofino-leaf1-netcfg.json
new file mode 100644
index 0000000..a38df4c
--- /dev/null
+++ b/p4-pod-configs/mwc-pod/tofino-leaf1-netcfg.json
@@ -0,0 +1,56 @@
+{
+  "devices": {
+    "device:tofino:leaf1": {
+      "chassisId": "000000000204",
+      "generalprovider": {
+        "p4runtime": {
+          "ip": "10.128.13.221",
+          "deviceKeyId": "p4runtime:device:tofino:leaf1",
+          "port": 50051,
+          "deviceId": 0
+        }
+      },
+      "piPipeconf": {
+        "piPipeconfId": "org.onosproject.pipelines.fabric.montara"
+      },
+      "ports": {
+        "1/0": {
+          "name": "1/0",
+          "speed": 100000,
+          "enabled": true,
+          "number": 128,
+          "removed": false,
+          "type": "copper"
+        },
+        "2/0": {
+          "name": "2/0",
+          "speed": 100000,
+          "enabled": true,
+          "number": 136,
+          "removed": false,
+          "type": "copper"
+        },
+        "3/0": {
+          "name": "3/0",
+          "speed": 10000,
+          "enabled": true,
+          "number": 144,
+          "removed": false,
+          "type": "copper"
+        },
+        "3/1": {
+          "name": "3/1",
+          "speed": 10000,
+          "enabled": true,
+          "number": 145,
+          "removed": false,
+          "type": "copper"
+        }
+      },
+      "basic": {
+        "driver": "barefoot-pro",
+        "name": "leaf1"
+      }
+    }
+  }
+}
diff --git a/p4-pod-configs/mwc-pod/tofino-leaf2-netcfg.json b/p4-pod-configs/mwc-pod/tofino-leaf2-netcfg.json
new file mode 100644
index 0000000..9c2cdce
--- /dev/null
+++ b/p4-pod-configs/mwc-pod/tofino-leaf2-netcfg.json
@@ -0,0 +1,64 @@
+{
+  "devices": {
+    "device:tofino:leaf2": {
+      "chassisId": "000000000205",
+      "generalprovider": {
+        "p4runtime": {
+          "ip": "10.128.13.222",
+          "deviceKeyId": "p4runtime:device:tofino:leaf2",
+          "port": 50051,
+          "deviceId": 0
+        }
+      },
+      "piPipeconf": {
+        "piPipeconfId": "org.onosproject.pipelines.fabric-spgw.montara"
+      },
+      "ports": {
+        "1/0": {
+          "name": "1/0",
+          "speed": 100000,
+          "enabled": true,
+          "number": 128,
+          "removed": false,
+          "type": "copper"
+        },
+        "2/0": {
+          "name": "2/0",
+          "speed": 100000,
+          "enabled": true,
+          "number": 136,
+          "removed": false,
+          "type": "copper"
+        },
+        "3/0": {
+          "name": "3/0",
+          "speed": 10000,
+          "enabled": true,
+          "number": 144,
+          "removed": false,
+          "type": "copper"
+        },
+        "3/1": {
+          "name": "3/1",
+          "speed": 10000,
+          "enabled": true,
+          "number": 145,
+          "removed": false,
+          "type": "copper"
+        },
+        "3/2": {
+          "name": "3/2",
+          "speed": 10000,
+          "enabled": true,
+          "number": 146,
+          "removed": false,
+          "type": "copper"
+        }
+      },
+      "basic": {
+        "driver": "barefoot-pro",
+        "name": "leaf2"
+      }
+    }
+  }
+}
diff --git a/pipelines/fabric-pro/BUCK b/pipelines/fabric-pro/BUCK
new file mode 100644
index 0000000..da58b20
--- /dev/null
+++ b/pipelines/fabric-pro/BUCK
@@ -0,0 +1,35 @@
+COMPILE_DEPS = [
+    '//lib:CORE_DEPS',
+    '//lib:KRYO',
+    '//protocols/p4runtime/model:onos-protocols-p4runtime-model',
+    '//protocols/p4runtime/api:onos-protocols-p4runtime-api',
+    '//pipelines/basic:onos-pipelines-basic',
+    '//pipelines/fabric:onos-pipelines-fabric',
+    '//core/store/serializers:onos-core-serializers',
+]
+
+TEST_DEPS = [
+    '//lib:TEST_ADAPTERS',
+]
+
+BUNDLES = [
+    '//pipelines/fabric-pro:onos-pipelines-fabric-pro',
+]
+
+osgi_jar_with_tests (
+    deps = COMPILE_DEPS,
+    test_deps = TEST_DEPS,
+)
+
+onos_app(
+    app_name = 'org.onosproject.pipelines.fabric-pro',
+    title = 'Fabric Pipeline PRO',
+    category = 'Pipeline',
+    url = 'http://onosproject.org',
+    description = 'Provides CORD fabric pipelines for P4-enabled switches',
+    included_bundles = BUNDLES,
+    required_apps = [
+        'org.onosproject.drivers.p4runtime',
+        'org.onosproject.pipelines.fabric',
+    ]
+)
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
new file mode 100644
index 0000000..c278829
--- /dev/null
+++ b/pipelines/fabric-pro/src/main/java/org/onosproject/pipelines/fabric/pro/HwPipeconfLoader.java
@@ -0,0 +1,128 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.pipelines.fabric.pro;
+
+import com.google.common.collect.ImmutableList;
+import org.apache.felix.scr.annotations.Activate;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Deactivate;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.ReferenceCardinality;
+import org.onosproject.net.behaviour.Pipeliner;
+import org.onosproject.net.device.PortStatisticsDiscovery;
+import org.onosproject.net.pi.model.DefaultPiPipeconf;
+import org.onosproject.net.pi.model.PiPipeconf;
+import org.onosproject.net.pi.model.PiPipeconfId;
+import org.onosproject.net.pi.model.PiPipelineInterpreter;
+import org.onosproject.net.pi.model.PiPipelineModel;
+import org.onosproject.net.pi.service.PiPipeconfService;
+import org.onosproject.p4runtime.model.P4InfoParser;
+import org.onosproject.p4runtime.model.P4InfoParserException;
+import org.onosproject.pipelines.fabric.FabricInterpreter;
+import org.onosproject.pipelines.fabric.FabricPortStatisticsDiscovery;
+import org.onosproject.pipelines.fabric.pipeliner.FabricPipeliner;
+
+import java.net.URL;
+import java.util.Collection;
+
+import static java.lang.String.format;
+import static org.onosproject.net.pi.model.PiPipeconf.ExtensionType.P4_INFO_TEXT;
+import static org.onosproject.net.pi.model.PiPipeconf.ExtensionType.TOFINO_BIN;
+import static org.onosproject.net.pi.model.PiPipeconf.ExtensionType.TOFINO_CONTEXT_JSON;
+import static org.onosproject.pipelines.fabric.PipeconfLoader.FABRIC_PIPECONF_ID;
+
+/**
+ * Pipeline config loader for fabric pipeline.
+ */
+@Component(immediate = true)
+public class HwPipeconfLoader {
+
+    private static final String MAVERICKS = "mavericks";
+    private static final String MONTARA = "montara";
+
+    private static final String PLAIN_FABRIC = "";
+    private static final String WITH_SPGW = "-spgw";
+
+    // TODO: add WITH_SPGW when ready
+    private static final Collection<String> APPENDICES = ImmutableList
+            .of(PLAIN_FABRIC, WITH_SPGW);
+
+    private static final Collection<String> PLATFORMS = ImmutableList
+            .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";
+    private static final String BASE_CONTEXT_JSON_PATH = BASE_PATH + "/context.json";
+    private static final String BASE_P4INFO_PATH = BASE_PATH + "/fabric.p4info";
+
+    private static final Collection<PiPipeconf> ALL_PIPECONFS = buildAll();
+
+    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+    private PiPipeconfService piPipeconfService;
+
+    @Activate
+    public void activate() {
+        // Registers all pipeconf at component activation.
+        ALL_PIPECONFS.forEach(piPipeconfService::register);
+    }
+
+    @Deactivate
+    public void deactivate() {
+        ALL_PIPECONFS.stream().map(PiPipeconf::id).forEach(piPipeconfService::remove);
+    }
+
+    private static PiPipeconf buildTofinoPipeconf(String platform, String appendix) {
+        final PiPipeconfId pipeconfId = new PiPipeconfId(
+                FABRIC_PIPECONF_ID.id() + appendix + "." + platform);
+        final URL tofinoBinUrl = HwPipeconfLoader.class
+                .getResource(format(BASE_TOFINO_BIN_PATH, appendix, platform));
+        final URL contextJsonUrl = HwPipeconfLoader.class
+                .getResource(format(BASE_CONTEXT_JSON_PATH, appendix, platform));
+        final URL p4InfoUrl = HwPipeconfLoader.class
+                .getResource(format(BASE_P4INFO_PATH, appendix, platform));
+
+        final PiPipelineModel model = parseP4Info(p4InfoUrl);
+        return DefaultPiPipeconf.builder()
+                .withId(pipeconfId)
+                .withPipelineModel(model)
+                .addBehaviour(PiPipelineInterpreter.class, FabricInterpreter.class)
+                .addBehaviour(Pipeliner.class, FabricPipeliner.class)
+                .addBehaviour(PortStatisticsDiscovery.class, FabricPortStatisticsDiscovery.class)
+                .addExtension(P4_INFO_TEXT, p4InfoUrl)
+                .addExtension(TOFINO_BIN, tofinoBinUrl)
+                .addExtension(TOFINO_CONTEXT_JSON, contextJsonUrl)
+                .build();
+    }
+
+    private static Collection<PiPipeconf> buildAll() {
+        ImmutableList.Builder<PiPipeconf> builder = ImmutableList.builder();
+        for (String platform : PLATFORMS) {
+            for (String appendix : APPENDICES) {
+                builder.add(buildTofinoPipeconf(platform, appendix));
+            }
+        }
+        return builder.build();
+    }
+
+    private static PiPipelineModel parseP4Info(URL p4InfoUrl) {
+        try {
+            return P4InfoParser.parse(p4InfoUrl);
+        } catch (P4InfoParserException e) {
+            throw new RuntimeException(e);
+        }
+    }
+}
diff --git a/pipelines/fabric-pro/src/main/java/org/onosproject/pipelines/fabric/pro/package-info.java b/pipelines/fabric-pro/src/main/java/org/onosproject/pipelines/fabric/pro/package-info.java
new file mode 100644
index 0000000..f84fec4
--- /dev/null
+++ b/pipelines/fabric-pro/src/main/java/org/onosproject/pipelines/fabric/pro/package-info.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * CORD underlay fabric pipeline for P4 hardware switches.
+ */
+package org.onosproject.pipelines.fabric.pro;
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
new file mode 100644
index 0000000..5942baa
--- /dev/null
+++ b/pipelines/fabric-pro/src/main/resources/Makefile
@@ -0,0 +1,36 @@
+P4_SRC_DIR=$(ONOS_ROOT)/pipelines/fabric/src/main/resources
+
+MAVERICKS_CPU_PORT=320
+MONTARA_CPU_PORT=192
+
+MAVERICKS_OPTIONS=-DCPU_PORT=$(MAVERICKS_CPU_PORT)
+MONTARA_OPTIONS=-DCPU_PORT=$(MONTARA_CPU_PORT)
+
+all: fabric-tofino fabric-spgw-tofino
+
+fabric-tofino:
+	p4c -x p4-16 -b tofino-v1model-barefoot \
+		-I $(P4_SRC_DIR) \
+		$(MAVERICKS_OPTIONS) -o p4c-out/tofino/fabric/mavericks \
+		--p4runtime-file p4c-out/tofino/fabric/mavericks/fabric.p4info \
+		--p4runtime-format text main.p4
+	p4c -x p4-16 -b tofino-v1model-barefoot \
+		-I $(P4_SRC_DIR) \
+		$(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:
+	p4c -x p4-16 -b tofino-v1model-barefoot \
+		-I $(P4_SRC_DIR) \
+		$(MAVERICKS_OPTIONS) -DWITH_SPGW -o p4c-out/tofino/fabric-spgw/mavericks \
+		--p4runtime-file p4c-out/tofino/fabric-spgw/mavericks/fabric.p4info \
+		--p4runtime-format text main.p4
+	p4c -x p4-16 -b tofino-v1model-barefoot \
+		-I $(P4_SRC_DIR) \
+		$(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:
+	rm -rf p4c-out/*
diff --git a/pipelines/fabric-pro/src/main/resources/main.p4 b/pipelines/fabric-pro/src/main/resources/main.p4
new file mode 100644
index 0000000..1d7fcdd
--- /dev/null
+++ b/pipelines/fabric-pro/src/main/resources/main.p4
@@ -0,0 +1,19 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+ #define _PKT_OUT_HDR_ANNOT_ @not_extracted_in_egress
+
+ #include "fabric.p4"
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
new file mode 100644
index 0000000..1851ca8
--- /dev/null
+++ b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/mavericks/context.json
@@ -0,0 +1,62330 @@
+{
+  "build_date": "02/15/18 04:16:36",
+  "compiler_version": "6.0.0-alpha.4",
+  "program_name": "main",
+  "learn_quanta": [],
+  "dynamic_hash_calculations": [],
+  "parser": { "ingress": [], "egress": [] },
+  "phv_allocation": [
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "gtpu_ipv4.src_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": 1,
+          "records": [
+            {
+              "position_offset": 132,
+              "field_name": "ipv4.src_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": 2,
+          "records": [
+            {
+              "position_offset": 155,
+              "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": 60,
+              "field_name": "gtpu_ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "ipv4.dst_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": 5,
+          "records": [
+            {
+              "position_offset": 159,
+              "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": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 7,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 8,
+          "records": [
+            {
+              "position_offset": 163,
+              "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": 9,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 70,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 139,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 130,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 67,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 145,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 142,
+              "field_name": "mpls.bos",
+              "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": 71,
+          "records": [
+            {
+              "position_offset": 78,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 73,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 74,
+          "records": [
+            {
+              "position_offset": 71,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 75,
+          "records": [
+            {
+              "position_offset": 131,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 76,
+          "records": [
+            {
+              "position_offset": 146,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 77,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "spgw.do_spgw",
+              "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": 78,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 90,
+              "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": 167,
+              "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": 151,
+              "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": 79,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 113,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 115,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 149,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 212,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 208,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 214,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 204,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 109,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 126,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 153,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 141,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 142,
+          "records": [
+            {
+              "position_offset": 21,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 143,
+          "records": [
+            {
+              "position_offset": 210,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 160,
+          "records": [
+            {
+              "position_offset": 68,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 161,
+          "records": [
+            {
+              "position_offset": 128,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 162,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 163,
+          "records": [
+            {
+              "position_offset": 200,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 164,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 165,
+          "records": [
+            {
+              "position_offset": 202,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 166,
+          "records": [
+            {
+              "position_offset": 82,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 167,
+          "records": [
+            {
+              "position_offset": 198,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 168,
+          "records": [
+            {
+              "position_offset": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 169,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 170,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 171,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 172,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 3,
+                  "header_name": "arp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 13,
+                  "header_name": "ethernet",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 42,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 57,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 80,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 91,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 117,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 196,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 173,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 140,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 147,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 168,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 206,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 186,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 170,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 52,
+              "field_name": "gtpu.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": 288,
+          "records": [
+            {
+              "position_offset": 56,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 49,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 51,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 44,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu.npdu_flag",
+              "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": 289,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 5,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 10,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 190,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 184,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 97,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 11,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 192,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 194,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 174,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 16,
+          "records": [
+            {
+              "position_offset": 135,
+              "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": 17,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "gtpu.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": 18,
+          "records": [
+            {
+              "position_offset": 131,
+              "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": 19,
+          "records": [
+            {
+              "position_offset": 54,
+              "field_name": "gtpu_ipv4.src_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": 20,
+          "records": [
+            {
+              "position_offset": 127,
+              "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": 21,
+          "records": [
+            {
+              "position_offset": 42,
+              "field_name": "gtpu_ipv4.dst_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": 80,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 32,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 34,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "gtpu.npdu_flag",
+              "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": 81,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 82,
+          "records": [
+            {
+              "position_offset": 61,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 52,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 83,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 84,
+          "records": [
+            {
+              "position_offset": 60,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 85,
+          "records": [
+            {
+              "position_offset": 53,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 86,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
+              "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": 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,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 40,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 62,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 71,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 89,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 90,
+                  "header_name": "ipv4",
+                  "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": 112,
+                  "header_name": "mpls",
+                  "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": 118,
+                  "header_name": "packet_in",
+                  "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": 139,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 166,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 175,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 121,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 119,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 147,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 148,
+          "records": [
+            {
+              "position_offset": 67,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 149,
+          "records": [
+            {
+              "position_offset": 125,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 150,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 151,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 152,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 153,
+          "records": [
+            {
+              "position_offset": 50,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 154,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 155,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 262,
+          "records": [
+            {
+              "position_offset": 104,
+              "field_name": "ipv4.src_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": 263,
+          "records": [
+            {
+              "position_offset": 92,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 156,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 140,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 102,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 75,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 91,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 295,
+          "records": [
+            {
+              "position_offset": 74,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 116,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 113,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 110,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 160,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 148,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 154,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 146,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 76,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 98,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 100,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 150,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 164,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 144,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 347,
+          "records": [
+            {
+              "position_offset": 162,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 348,
+          "records": [
+            {
+              "position_offset": 169,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 349,
+          "records": [
+            {
+              "position_offset": 171,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 350,
+          "records": [
+            {
+              "position_offset": 167,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 0
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "gtpu_ipv4.src_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": 1,
+          "records": [
+            {
+              "position_offset": 132,
+              "field_name": "ipv4.src_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": 2,
+          "records": [
+            {
+              "position_offset": 155,
+              "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": 60,
+              "field_name": "gtpu_ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "ipv4.dst_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": 5,
+          "records": [
+            {
+              "position_offset": 159,
+              "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": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 7,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 8,
+          "records": [
+            {
+              "position_offset": 163,
+              "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": 9,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 70,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 139,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 130,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 67,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 145,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 142,
+              "field_name": "mpls.bos",
+              "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": 71,
+          "records": [
+            {
+              "position_offset": 78,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 73,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 74,
+          "records": [
+            {
+              "position_offset": 71,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 75,
+          "records": [
+            {
+              "position_offset": 131,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 76,
+          "records": [
+            {
+              "position_offset": 146,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 77,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "spgw.do_spgw",
+              "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": 78,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 90,
+              "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": 167,
+              "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": 151,
+              "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": 79,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 113,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 115,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 149,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 212,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 208,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 214,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 204,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 109,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 126,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 153,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 141,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 142,
+          "records": [
+            {
+              "position_offset": 21,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 143,
+          "records": [
+            {
+              "position_offset": 210,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 160,
+          "records": [
+            {
+              "position_offset": 68,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 161,
+          "records": [
+            {
+              "position_offset": 128,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 162,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 163,
+          "records": [
+            {
+              "position_offset": 200,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 164,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 165,
+          "records": [
+            {
+              "position_offset": 202,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 166,
+          "records": [
+            {
+              "position_offset": 82,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 167,
+          "records": [
+            {
+              "position_offset": 198,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 168,
+          "records": [
+            {
+              "position_offset": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 169,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 170,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 171,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 172,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 3,
+                  "header_name": "arp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 13,
+                  "header_name": "ethernet",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 42,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 57,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 80,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 91,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 117,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 196,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 173,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 140,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 147,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 168,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 206,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 186,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 170,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 52,
+              "field_name": "gtpu.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": 288,
+          "records": [
+            {
+              "position_offset": 56,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 49,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 51,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 44,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu.npdu_flag",
+              "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": 289,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 5,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 10,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 190,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 184,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 97,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 11,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 192,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 194,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 174,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 16,
+          "records": [
+            {
+              "position_offset": 135,
+              "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": 17,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "gtpu.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": 18,
+          "records": [
+            {
+              "position_offset": 131,
+              "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": 19,
+          "records": [
+            {
+              "position_offset": 54,
+              "field_name": "gtpu_ipv4.src_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": 20,
+          "records": [
+            {
+              "position_offset": 127,
+              "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": 21,
+          "records": [
+            {
+              "position_offset": 42,
+              "field_name": "gtpu_ipv4.dst_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": 80,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 32,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 34,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "gtpu.npdu_flag",
+              "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": 81,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 82,
+          "records": [
+            {
+              "position_offset": 61,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 52,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 83,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 84,
+          "records": [
+            {
+              "position_offset": 60,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 85,
+          "records": [
+            {
+              "position_offset": 53,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 86,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
+              "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": 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,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 40,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 62,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 71,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 89,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 90,
+                  "header_name": "ipv4",
+                  "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": 112,
+                  "header_name": "mpls",
+                  "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": 118,
+                  "header_name": "packet_in",
+                  "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": 139,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 166,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 175,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 121,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 119,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 147,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 148,
+          "records": [
+            {
+              "position_offset": 67,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 149,
+          "records": [
+            {
+              "position_offset": 125,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 150,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 151,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 152,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 153,
+          "records": [
+            {
+              "position_offset": 50,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 154,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 155,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 262,
+          "records": [
+            {
+              "position_offset": 104,
+              "field_name": "ipv4.src_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": 263,
+          "records": [
+            {
+              "position_offset": 92,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 156,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 140,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 102,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 75,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 91,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 295,
+          "records": [
+            {
+              "position_offset": 74,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 116,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 113,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 110,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 160,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 148,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 154,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 146,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 76,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 98,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 100,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 150,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 164,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 144,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 347,
+          "records": [
+            {
+              "position_offset": 162,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 348,
+          "records": [
+            {
+              "position_offset": 169,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 349,
+          "records": [
+            {
+              "position_offset": 171,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 350,
+          "records": [
+            {
+              "position_offset": 167,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 1
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "gtpu_ipv4.src_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": 1,
+          "records": [
+            {
+              "position_offset": 132,
+              "field_name": "ipv4.src_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": 2,
+          "records": [
+            {
+              "position_offset": 155,
+              "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": 60,
+              "field_name": "gtpu_ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "ipv4.dst_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": 5,
+          "records": [
+            {
+              "position_offset": 159,
+              "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": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 7,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 8,
+          "records": [
+            {
+              "position_offset": 163,
+              "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": 9,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 70,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 139,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 130,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 67,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 145,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 142,
+              "field_name": "mpls.bos",
+              "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": 71,
+          "records": [
+            {
+              "position_offset": 78,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 73,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 74,
+          "records": [
+            {
+              "position_offset": 71,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 75,
+          "records": [
+            {
+              "position_offset": 131,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 76,
+          "records": [
+            {
+              "position_offset": 146,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 77,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "spgw.do_spgw",
+              "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": 78,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 90,
+              "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": 167,
+              "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": 151,
+              "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": 79,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 113,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 115,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 149,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 212,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 208,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 214,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 204,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 109,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 126,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 153,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 141,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 142,
+          "records": [
+            {
+              "position_offset": 21,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 143,
+          "records": [
+            {
+              "position_offset": 210,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 160,
+          "records": [
+            {
+              "position_offset": 68,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 161,
+          "records": [
+            {
+              "position_offset": 128,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 162,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 163,
+          "records": [
+            {
+              "position_offset": 200,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 164,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 165,
+          "records": [
+            {
+              "position_offset": 202,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 166,
+          "records": [
+            {
+              "position_offset": 82,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 167,
+          "records": [
+            {
+              "position_offset": 198,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 168,
+          "records": [
+            {
+              "position_offset": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 169,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 170,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 171,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 172,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 3,
+                  "header_name": "arp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 13,
+                  "header_name": "ethernet",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 42,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 57,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 80,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 91,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 117,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 196,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 173,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 140,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 147,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 168,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 206,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 186,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 170,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 52,
+              "field_name": "gtpu.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": 288,
+          "records": [
+            {
+              "position_offset": 56,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 49,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 51,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 44,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu.npdu_flag",
+              "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": 289,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 5,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 10,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 190,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 184,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 97,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 11,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 192,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 194,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 174,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 16,
+          "records": [
+            {
+              "position_offset": 135,
+              "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": 17,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "gtpu.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": 18,
+          "records": [
+            {
+              "position_offset": 131,
+              "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": 19,
+          "records": [
+            {
+              "position_offset": 54,
+              "field_name": "gtpu_ipv4.src_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": 20,
+          "records": [
+            {
+              "position_offset": 127,
+              "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": 21,
+          "records": [
+            {
+              "position_offset": 42,
+              "field_name": "gtpu_ipv4.dst_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": 80,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 32,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 34,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "gtpu.npdu_flag",
+              "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": 81,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 82,
+          "records": [
+            {
+              "position_offset": 61,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 52,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 83,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 84,
+          "records": [
+            {
+              "position_offset": 60,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 85,
+          "records": [
+            {
+              "position_offset": 53,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 86,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
+              "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": 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,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 40,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 62,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 71,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 89,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 90,
+                  "header_name": "ipv4",
+                  "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": 112,
+                  "header_name": "mpls",
+                  "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": 118,
+                  "header_name": "packet_in",
+                  "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": 139,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 166,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 175,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 121,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 119,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 147,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 148,
+          "records": [
+            {
+              "position_offset": 67,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 149,
+          "records": [
+            {
+              "position_offset": 125,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 150,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 151,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 152,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 153,
+          "records": [
+            {
+              "position_offset": 50,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 154,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 155,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 262,
+          "records": [
+            {
+              "position_offset": 104,
+              "field_name": "ipv4.src_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": 263,
+          "records": [
+            {
+              "position_offset": 92,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 156,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 140,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 102,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 75,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 91,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 295,
+          "records": [
+            {
+              "position_offset": 74,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 116,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 113,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 110,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 160,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 148,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 154,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 146,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 76,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 98,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 100,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 150,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 164,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 144,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 347,
+          "records": [
+            {
+              "position_offset": 162,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 348,
+          "records": [
+            {
+              "position_offset": 169,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 349,
+          "records": [
+            {
+              "position_offset": 171,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 350,
+          "records": [
+            {
+              "position_offset": 167,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 2
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "gtpu_ipv4.src_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": 1,
+          "records": [
+            {
+              "position_offset": 132,
+              "field_name": "ipv4.src_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": 2,
+          "records": [
+            {
+              "position_offset": 155,
+              "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": 60,
+              "field_name": "gtpu_ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "ipv4.dst_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": 5,
+          "records": [
+            {
+              "position_offset": 159,
+              "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": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 7,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 8,
+          "records": [
+            {
+              "position_offset": 163,
+              "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": 9,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 70,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 139,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 130,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 67,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 145,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 142,
+              "field_name": "mpls.bos",
+              "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": 71,
+          "records": [
+            {
+              "position_offset": 78,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 73,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 74,
+          "records": [
+            {
+              "position_offset": 71,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 75,
+          "records": [
+            {
+              "position_offset": 131,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 76,
+          "records": [
+            {
+              "position_offset": 146,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 77,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "spgw.do_spgw",
+              "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": 78,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 90,
+              "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": 167,
+              "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": 151,
+              "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": 79,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 113,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 115,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 149,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 212,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 208,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 214,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 204,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 109,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 126,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 153,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 141,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 142,
+          "records": [
+            {
+              "position_offset": 21,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 143,
+          "records": [
+            {
+              "position_offset": 210,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 160,
+          "records": [
+            {
+              "position_offset": 68,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 161,
+          "records": [
+            {
+              "position_offset": 128,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 162,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 163,
+          "records": [
+            {
+              "position_offset": 200,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 164,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 165,
+          "records": [
+            {
+              "position_offset": 202,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 166,
+          "records": [
+            {
+              "position_offset": 82,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 167,
+          "records": [
+            {
+              "position_offset": 198,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 168,
+          "records": [
+            {
+              "position_offset": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 169,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 170,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 171,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 172,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 3,
+                  "header_name": "arp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 13,
+                  "header_name": "ethernet",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 42,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 57,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 80,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 91,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 117,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 196,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 173,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 140,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 147,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 168,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 206,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 186,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 170,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 52,
+              "field_name": "gtpu.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": 288,
+          "records": [
+            {
+              "position_offset": 56,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 49,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 51,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 44,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu.npdu_flag",
+              "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": 289,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 5,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 10,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 190,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 184,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 97,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 11,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 192,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 194,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 174,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 16,
+          "records": [
+            {
+              "position_offset": 135,
+              "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": 17,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "gtpu.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": 18,
+          "records": [
+            {
+              "position_offset": 131,
+              "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": 19,
+          "records": [
+            {
+              "position_offset": 54,
+              "field_name": "gtpu_ipv4.src_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": 20,
+          "records": [
+            {
+              "position_offset": 127,
+              "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": 21,
+          "records": [
+            {
+              "position_offset": 42,
+              "field_name": "gtpu_ipv4.dst_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": 80,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 32,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 34,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "gtpu.npdu_flag",
+              "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": 81,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 82,
+          "records": [
+            {
+              "position_offset": 61,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 52,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 83,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 84,
+          "records": [
+            {
+              "position_offset": 60,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 85,
+          "records": [
+            {
+              "position_offset": 53,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 86,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
+              "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": 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,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 40,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 62,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 71,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 89,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 90,
+                  "header_name": "ipv4",
+                  "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": 112,
+                  "header_name": "mpls",
+                  "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": 118,
+                  "header_name": "packet_in",
+                  "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": 139,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 166,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 175,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 121,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 119,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 147,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 148,
+          "records": [
+            {
+              "position_offset": 67,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 149,
+          "records": [
+            {
+              "position_offset": 125,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 150,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 151,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 152,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 153,
+          "records": [
+            {
+              "position_offset": 50,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 154,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 155,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 262,
+          "records": [
+            {
+              "position_offset": 104,
+              "field_name": "ipv4.src_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": 263,
+          "records": [
+            {
+              "position_offset": 92,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 156,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 140,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 102,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 75,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 91,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 295,
+          "records": [
+            {
+              "position_offset": 74,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 116,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 113,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 110,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 160,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 148,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 154,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 146,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 76,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 98,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 100,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 150,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 164,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 144,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 347,
+          "records": [
+            {
+              "position_offset": 162,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 348,
+          "records": [
+            {
+              "position_offset": 169,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 349,
+          "records": [
+            {
+              "position_offset": 171,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 350,
+          "records": [
+            {
+              "position_offset": 167,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 3
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "gtpu_ipv4.src_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": 1,
+          "records": [
+            {
+              "position_offset": 132,
+              "field_name": "ipv4.src_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": 2,
+          "records": [
+            {
+              "position_offset": 155,
+              "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": 60,
+              "field_name": "gtpu_ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "ipv4.dst_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": 5,
+          "records": [
+            {
+              "position_offset": 159,
+              "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": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 7,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 8,
+          "records": [
+            {
+              "position_offset": 163,
+              "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": 9,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 70,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 139,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 130,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 67,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 145,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 142,
+              "field_name": "mpls.bos",
+              "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": 71,
+          "records": [
+            {
+              "position_offset": 78,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 73,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 74,
+          "records": [
+            {
+              "position_offset": 71,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 75,
+          "records": [
+            {
+              "position_offset": 131,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 76,
+          "records": [
+            {
+              "position_offset": 146,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 77,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "spgw.do_spgw",
+              "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": 78,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 90,
+              "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": 167,
+              "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": 151,
+              "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": 79,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 113,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 115,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 149,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 212,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 208,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 214,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 204,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 109,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 126,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 153,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 141,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 142,
+          "records": [
+            {
+              "position_offset": 21,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 143,
+          "records": [
+            {
+              "position_offset": 210,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 160,
+          "records": [
+            {
+              "position_offset": 68,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 161,
+          "records": [
+            {
+              "position_offset": 128,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 162,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 163,
+          "records": [
+            {
+              "position_offset": 200,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 164,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 165,
+          "records": [
+            {
+              "position_offset": 202,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 166,
+          "records": [
+            {
+              "position_offset": 82,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 167,
+          "records": [
+            {
+              "position_offset": 198,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 168,
+          "records": [
+            {
+              "position_offset": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 169,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 170,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 171,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 172,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 3,
+                  "header_name": "arp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 13,
+                  "header_name": "ethernet",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 42,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 57,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 80,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 91,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 117,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 196,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 173,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 140,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 147,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 168,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 206,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 186,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 170,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 52,
+              "field_name": "gtpu.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": 288,
+          "records": [
+            {
+              "position_offset": 56,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 49,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 51,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 44,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu.npdu_flag",
+              "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": 289,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 5,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 10,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 190,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 184,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 97,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 11,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 192,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 194,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 174,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 16,
+          "records": [
+            {
+              "position_offset": 135,
+              "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": 17,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "gtpu.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": 18,
+          "records": [
+            {
+              "position_offset": 131,
+              "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": 19,
+          "records": [
+            {
+              "position_offset": 54,
+              "field_name": "gtpu_ipv4.src_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": 20,
+          "records": [
+            {
+              "position_offset": 127,
+              "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": 21,
+          "records": [
+            {
+              "position_offset": 42,
+              "field_name": "gtpu_ipv4.dst_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": 80,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 32,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 34,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "gtpu.npdu_flag",
+              "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": 81,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 82,
+          "records": [
+            {
+              "position_offset": 61,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 52,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 83,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 84,
+          "records": [
+            {
+              "position_offset": 60,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 85,
+          "records": [
+            {
+              "position_offset": 53,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 86,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
+              "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": 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,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 40,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 62,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 71,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 89,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 90,
+                  "header_name": "ipv4",
+                  "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": 112,
+                  "header_name": "mpls",
+                  "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": 118,
+                  "header_name": "packet_in",
+                  "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": 139,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 166,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 175,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 121,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 119,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 147,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 148,
+          "records": [
+            {
+              "position_offset": 67,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 149,
+          "records": [
+            {
+              "position_offset": 125,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 150,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 151,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 152,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 153,
+          "records": [
+            {
+              "position_offset": 50,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 154,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 155,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 262,
+          "records": [
+            {
+              "position_offset": 104,
+              "field_name": "ipv4.src_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": 263,
+          "records": [
+            {
+              "position_offset": 92,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 156,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 140,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 102,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 75,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 91,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 295,
+          "records": [
+            {
+              "position_offset": 74,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 116,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 113,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 110,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 160,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 148,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 154,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 146,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 76,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 98,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 100,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 150,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 164,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 144,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 347,
+          "records": [
+            {
+              "position_offset": 162,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 348,
+          "records": [
+            {
+              "position_offset": 169,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 349,
+          "records": [
+            {
+              "position_offset": 171,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 350,
+          "records": [
+            {
+              "position_offset": 167,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 4
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "gtpu_ipv4.src_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": 1,
+          "records": [
+            {
+              "position_offset": 132,
+              "field_name": "ipv4.src_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": 2,
+          "records": [
+            {
+              "position_offset": 155,
+              "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": 60,
+              "field_name": "gtpu_ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "ipv4.dst_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": 5,
+          "records": [
+            {
+              "position_offset": 159,
+              "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": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 7,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 8,
+          "records": [
+            {
+              "position_offset": 163,
+              "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": 9,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 70,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 139,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 130,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 67,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 145,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 142,
+              "field_name": "mpls.bos",
+              "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": 71,
+          "records": [
+            {
+              "position_offset": 78,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 73,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 74,
+          "records": [
+            {
+              "position_offset": 71,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 75,
+          "records": [
+            {
+              "position_offset": 131,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 76,
+          "records": [
+            {
+              "position_offset": 146,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 77,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "spgw.do_spgw",
+              "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": 78,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 90,
+              "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": 167,
+              "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": 151,
+              "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": 79,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 113,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 115,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 149,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 212,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 208,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 214,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 204,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 109,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 126,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 153,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 141,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 142,
+          "records": [
+            {
+              "position_offset": 21,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 143,
+          "records": [
+            {
+              "position_offset": 210,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 160,
+          "records": [
+            {
+              "position_offset": 68,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 161,
+          "records": [
+            {
+              "position_offset": 128,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 162,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 163,
+          "records": [
+            {
+              "position_offset": 200,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 164,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 165,
+          "records": [
+            {
+              "position_offset": 202,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 166,
+          "records": [
+            {
+              "position_offset": 82,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 167,
+          "records": [
+            {
+              "position_offset": 198,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 168,
+          "records": [
+            {
+              "position_offset": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 169,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 170,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 171,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 172,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 3,
+                  "header_name": "arp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 13,
+                  "header_name": "ethernet",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 42,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 57,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 80,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 91,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 117,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 196,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 173,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 140,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 147,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 168,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 206,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 186,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 170,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 52,
+              "field_name": "gtpu.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": 288,
+          "records": [
+            {
+              "position_offset": 56,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 49,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 51,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 44,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu.npdu_flag",
+              "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": 289,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 5,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 10,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 190,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 184,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 97,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 11,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 192,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 194,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 174,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 16,
+          "records": [
+            {
+              "position_offset": 135,
+              "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": 17,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "gtpu.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": 18,
+          "records": [
+            {
+              "position_offset": 131,
+              "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": 19,
+          "records": [
+            {
+              "position_offset": 54,
+              "field_name": "gtpu_ipv4.src_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": 20,
+          "records": [
+            {
+              "position_offset": 127,
+              "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": 21,
+          "records": [
+            {
+              "position_offset": 42,
+              "field_name": "gtpu_ipv4.dst_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": 80,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 32,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 34,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "gtpu.npdu_flag",
+              "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": 81,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 82,
+          "records": [
+            {
+              "position_offset": 61,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 52,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 83,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 84,
+          "records": [
+            {
+              "position_offset": 60,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 85,
+          "records": [
+            {
+              "position_offset": 53,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 86,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
+              "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": 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,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 40,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 62,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 71,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 89,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 90,
+                  "header_name": "ipv4",
+                  "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": 112,
+                  "header_name": "mpls",
+                  "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": 118,
+                  "header_name": "packet_in",
+                  "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": 139,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 166,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 175,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 121,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 119,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 147,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 148,
+          "records": [
+            {
+              "position_offset": 67,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 149,
+          "records": [
+            {
+              "position_offset": 125,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 150,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 151,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 152,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 153,
+          "records": [
+            {
+              "position_offset": 50,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 154,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 155,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 262,
+          "records": [
+            {
+              "position_offset": 104,
+              "field_name": "ipv4.src_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": 263,
+          "records": [
+            {
+              "position_offset": 92,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 156,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 140,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 102,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 75,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 91,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 295,
+          "records": [
+            {
+              "position_offset": 74,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 116,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 113,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 110,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 160,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 148,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 154,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 146,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 76,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 98,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 100,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 150,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 164,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 144,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 347,
+          "records": [
+            {
+              "position_offset": 162,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 348,
+          "records": [
+            {
+              "position_offset": 169,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 349,
+          "records": [
+            {
+              "position_offset": 171,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 350,
+          "records": [
+            {
+              "position_offset": 167,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 5
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "gtpu_ipv4.src_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": 1,
+          "records": [
+            {
+              "position_offset": 132,
+              "field_name": "ipv4.src_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": 2,
+          "records": [
+            {
+              "position_offset": 155,
+              "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": 60,
+              "field_name": "gtpu_ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "ipv4.dst_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": 5,
+          "records": [
+            {
+              "position_offset": 159,
+              "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": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 7,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 8,
+          "records": [
+            {
+              "position_offset": 163,
+              "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": 9,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 70,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 139,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 130,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 67,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 145,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 142,
+              "field_name": "mpls.bos",
+              "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": 71,
+          "records": [
+            {
+              "position_offset": 78,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 73,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 74,
+          "records": [
+            {
+              "position_offset": 71,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 75,
+          "records": [
+            {
+              "position_offset": 131,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 76,
+          "records": [
+            {
+              "position_offset": 146,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 77,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "spgw.do_spgw",
+              "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": 78,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 90,
+              "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": 167,
+              "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": 151,
+              "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": 79,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 113,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 115,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 149,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 212,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 208,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 214,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 204,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 109,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 126,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 153,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 141,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 142,
+          "records": [
+            {
+              "position_offset": 21,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 143,
+          "records": [
+            {
+              "position_offset": 210,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 160,
+          "records": [
+            {
+              "position_offset": 68,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 161,
+          "records": [
+            {
+              "position_offset": 128,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 162,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 163,
+          "records": [
+            {
+              "position_offset": 200,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 164,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 165,
+          "records": [
+            {
+              "position_offset": 202,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 166,
+          "records": [
+            {
+              "position_offset": 82,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 167,
+          "records": [
+            {
+              "position_offset": 198,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 168,
+          "records": [
+            {
+              "position_offset": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 169,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 170,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 171,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 172,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 3,
+                  "header_name": "arp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 13,
+                  "header_name": "ethernet",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 42,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 57,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 80,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 91,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 117,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 196,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 173,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 140,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 147,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 168,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 206,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 186,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 170,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 52,
+              "field_name": "gtpu.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": 288,
+          "records": [
+            {
+              "position_offset": 56,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 49,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 51,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 44,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu.npdu_flag",
+              "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": 289,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 5,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 10,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 190,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 184,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 97,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 11,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 192,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 194,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 174,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 16,
+          "records": [
+            {
+              "position_offset": 135,
+              "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": 17,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "gtpu.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": 18,
+          "records": [
+            {
+              "position_offset": 131,
+              "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": 19,
+          "records": [
+            {
+              "position_offset": 54,
+              "field_name": "gtpu_ipv4.src_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": 20,
+          "records": [
+            {
+              "position_offset": 127,
+              "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": 21,
+          "records": [
+            {
+              "position_offset": 42,
+              "field_name": "gtpu_ipv4.dst_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": 80,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 32,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 34,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "gtpu.npdu_flag",
+              "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": 81,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 82,
+          "records": [
+            {
+              "position_offset": 61,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 52,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 83,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 84,
+          "records": [
+            {
+              "position_offset": 60,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 85,
+          "records": [
+            {
+              "position_offset": 53,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 86,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
+              "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": 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,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 40,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 62,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 71,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 89,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 90,
+                  "header_name": "ipv4",
+                  "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": 112,
+                  "header_name": "mpls",
+                  "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": 118,
+                  "header_name": "packet_in",
+                  "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": 139,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 166,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 175,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 121,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 119,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 147,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 148,
+          "records": [
+            {
+              "position_offset": 67,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 149,
+          "records": [
+            {
+              "position_offset": 125,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 150,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 151,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 152,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 153,
+          "records": [
+            {
+              "position_offset": 50,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 154,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 155,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 262,
+          "records": [
+            {
+              "position_offset": 104,
+              "field_name": "ipv4.src_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": 263,
+          "records": [
+            {
+              "position_offset": 92,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 156,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 140,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 102,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 75,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 91,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 295,
+          "records": [
+            {
+              "position_offset": 74,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 116,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 113,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 110,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 160,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 148,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 154,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 146,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 76,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 98,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 100,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 150,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 164,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 144,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 347,
+          "records": [
+            {
+              "position_offset": 162,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 348,
+          "records": [
+            {
+              "position_offset": 169,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 349,
+          "records": [
+            {
+              "position_offset": 171,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 350,
+          "records": [
+            {
+              "position_offset": 167,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 6
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "gtpu_ipv4.src_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": 1,
+          "records": [
+            {
+              "position_offset": 132,
+              "field_name": "ipv4.src_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": 2,
+          "records": [
+            {
+              "position_offset": 155,
+              "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": 60,
+              "field_name": "gtpu_ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "ipv4.dst_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": 5,
+          "records": [
+            {
+              "position_offset": 159,
+              "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": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 7,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 8,
+          "records": [
+            {
+              "position_offset": 163,
+              "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": 9,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 70,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 139,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 130,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 67,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 145,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 142,
+              "field_name": "mpls.bos",
+              "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": 71,
+          "records": [
+            {
+              "position_offset": 78,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 73,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 74,
+          "records": [
+            {
+              "position_offset": 71,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 75,
+          "records": [
+            {
+              "position_offset": 131,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 76,
+          "records": [
+            {
+              "position_offset": 146,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 77,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "spgw.do_spgw",
+              "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": 78,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 90,
+              "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": 167,
+              "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": 151,
+              "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": 79,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 113,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 115,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 149,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 212,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 208,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 214,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 204,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 109,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 126,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 153,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 141,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 142,
+          "records": [
+            {
+              "position_offset": 21,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 143,
+          "records": [
+            {
+              "position_offset": 210,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 160,
+          "records": [
+            {
+              "position_offset": 68,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 161,
+          "records": [
+            {
+              "position_offset": 128,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 162,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 163,
+          "records": [
+            {
+              "position_offset": 200,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 164,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 165,
+          "records": [
+            {
+              "position_offset": 202,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 166,
+          "records": [
+            {
+              "position_offset": 82,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 167,
+          "records": [
+            {
+              "position_offset": 198,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 168,
+          "records": [
+            {
+              "position_offset": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 169,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 170,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 171,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 172,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 3,
+                  "header_name": "arp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 13,
+                  "header_name": "ethernet",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 42,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 57,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 80,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 91,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 117,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 196,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 173,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 140,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 147,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 168,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 206,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 186,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 170,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 52,
+              "field_name": "gtpu.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": 288,
+          "records": [
+            {
+              "position_offset": 56,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 49,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 51,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 44,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu.npdu_flag",
+              "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": 289,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 5,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 10,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 190,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 184,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 97,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 11,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 192,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 194,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 174,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 16,
+          "records": [
+            {
+              "position_offset": 135,
+              "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": 17,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "gtpu.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": 18,
+          "records": [
+            {
+              "position_offset": 131,
+              "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": 19,
+          "records": [
+            {
+              "position_offset": 54,
+              "field_name": "gtpu_ipv4.src_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": 20,
+          "records": [
+            {
+              "position_offset": 127,
+              "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": 21,
+          "records": [
+            {
+              "position_offset": 42,
+              "field_name": "gtpu_ipv4.dst_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": 80,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 32,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 34,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "gtpu.npdu_flag",
+              "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": 81,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 82,
+          "records": [
+            {
+              "position_offset": 61,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 52,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 83,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 84,
+          "records": [
+            {
+              "position_offset": 60,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 85,
+          "records": [
+            {
+              "position_offset": 53,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 86,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
+              "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": 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,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 40,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 62,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 71,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 89,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 90,
+                  "header_name": "ipv4",
+                  "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": 112,
+                  "header_name": "mpls",
+                  "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": 118,
+                  "header_name": "packet_in",
+                  "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": 139,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 166,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 175,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 121,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 119,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 147,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 148,
+          "records": [
+            {
+              "position_offset": 67,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 149,
+          "records": [
+            {
+              "position_offset": 125,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 150,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 151,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 152,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 153,
+          "records": [
+            {
+              "position_offset": 50,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 154,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 155,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 262,
+          "records": [
+            {
+              "position_offset": 104,
+              "field_name": "ipv4.src_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": 263,
+          "records": [
+            {
+              "position_offset": 92,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 156,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 140,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 102,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 75,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 91,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 295,
+          "records": [
+            {
+              "position_offset": 74,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 116,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 113,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 110,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 160,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 148,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 154,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 146,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 76,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 98,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 100,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 150,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 164,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 144,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 347,
+          "records": [
+            {
+              "position_offset": 162,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 348,
+          "records": [
+            {
+              "position_offset": 169,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 349,
+          "records": [
+            {
+              "position_offset": 171,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 350,
+          "records": [
+            {
+              "position_offset": 167,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 7
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "gtpu_ipv4.src_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": 1,
+          "records": [
+            {
+              "position_offset": 132,
+              "field_name": "ipv4.src_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": 2,
+          "records": [
+            {
+              "position_offset": 155,
+              "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": 60,
+              "field_name": "gtpu_ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "ipv4.dst_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": 5,
+          "records": [
+            {
+              "position_offset": 159,
+              "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": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 7,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 8,
+          "records": [
+            {
+              "position_offset": 163,
+              "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": 9,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 70,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 139,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 130,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 67,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 145,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 142,
+              "field_name": "mpls.bos",
+              "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": 71,
+          "records": [
+            {
+              "position_offset": 78,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 73,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 74,
+          "records": [
+            {
+              "position_offset": 71,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 75,
+          "records": [
+            {
+              "position_offset": 131,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 76,
+          "records": [
+            {
+              "position_offset": 146,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 77,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "spgw.do_spgw",
+              "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": 78,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 90,
+              "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": 167,
+              "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": 151,
+              "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": 79,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 113,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 115,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 149,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 212,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 208,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 214,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 204,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 109,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 126,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 153,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 141,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 142,
+          "records": [
+            {
+              "position_offset": 21,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 143,
+          "records": [
+            {
+              "position_offset": 210,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 160,
+          "records": [
+            {
+              "position_offset": 68,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 161,
+          "records": [
+            {
+              "position_offset": 128,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 162,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 163,
+          "records": [
+            {
+              "position_offset": 200,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 164,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 165,
+          "records": [
+            {
+              "position_offset": 202,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 166,
+          "records": [
+            {
+              "position_offset": 82,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 167,
+          "records": [
+            {
+              "position_offset": 198,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 168,
+          "records": [
+            {
+              "position_offset": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 169,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 170,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 171,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 172,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 3,
+                  "header_name": "arp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 13,
+                  "header_name": "ethernet",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 42,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 57,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 80,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 91,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 117,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 196,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 173,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 140,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 147,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 168,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 206,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 186,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 170,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 52,
+              "field_name": "gtpu.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": 288,
+          "records": [
+            {
+              "position_offset": 56,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 49,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 51,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 44,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu.npdu_flag",
+              "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": 289,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 5,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 10,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 190,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 184,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 97,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 11,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 192,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 194,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 174,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 16,
+          "records": [
+            {
+              "position_offset": 135,
+              "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": 17,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "gtpu.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": 18,
+          "records": [
+            {
+              "position_offset": 131,
+              "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": 19,
+          "records": [
+            {
+              "position_offset": 54,
+              "field_name": "gtpu_ipv4.src_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": 20,
+          "records": [
+            {
+              "position_offset": 127,
+              "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": 21,
+          "records": [
+            {
+              "position_offset": 42,
+              "field_name": "gtpu_ipv4.dst_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": 80,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 32,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 34,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "gtpu.npdu_flag",
+              "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": 81,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 82,
+          "records": [
+            {
+              "position_offset": 61,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 52,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 83,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 84,
+          "records": [
+            {
+              "position_offset": 60,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 85,
+          "records": [
+            {
+              "position_offset": 53,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 86,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
+              "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": 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,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 40,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 62,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 71,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 89,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 90,
+                  "header_name": "ipv4",
+                  "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": 112,
+                  "header_name": "mpls",
+                  "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": 118,
+                  "header_name": "packet_in",
+                  "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": 139,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 166,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 175,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 121,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 119,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 147,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 148,
+          "records": [
+            {
+              "position_offset": 67,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 149,
+          "records": [
+            {
+              "position_offset": 125,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 150,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 151,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 152,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 153,
+          "records": [
+            {
+              "position_offset": 50,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 154,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 155,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 262,
+          "records": [
+            {
+              "position_offset": 104,
+              "field_name": "ipv4.src_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": 263,
+          "records": [
+            {
+              "position_offset": 92,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 156,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 140,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 102,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 75,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 91,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 295,
+          "records": [
+            {
+              "position_offset": 74,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 116,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 113,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 110,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 160,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 148,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 154,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 146,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 76,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 98,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 100,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 150,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 164,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 144,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 347,
+          "records": [
+            {
+              "position_offset": 162,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 348,
+          "records": [
+            {
+              "position_offset": 169,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 349,
+          "records": [
+            {
+              "position_offset": 171,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 350,
+          "records": [
+            {
+              "position_offset": 167,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 8
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "gtpu_ipv4.src_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": 1,
+          "records": [
+            {
+              "position_offset": 132,
+              "field_name": "ipv4.src_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": 2,
+          "records": [
+            {
+              "position_offset": 155,
+              "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": 60,
+              "field_name": "gtpu_ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "ipv4.dst_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": 5,
+          "records": [
+            {
+              "position_offset": 159,
+              "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": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 7,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 8,
+          "records": [
+            {
+              "position_offset": 163,
+              "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": 9,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 70,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 139,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 130,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 67,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 145,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 142,
+              "field_name": "mpls.bos",
+              "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": 71,
+          "records": [
+            {
+              "position_offset": 78,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 73,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 74,
+          "records": [
+            {
+              "position_offset": 71,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 75,
+          "records": [
+            {
+              "position_offset": 131,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 76,
+          "records": [
+            {
+              "position_offset": 146,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 77,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "spgw.do_spgw",
+              "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": 78,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 90,
+              "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": 167,
+              "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": 151,
+              "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": 79,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 113,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 115,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 149,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 212,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 208,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 214,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 204,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 109,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 126,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 153,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 141,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 142,
+          "records": [
+            {
+              "position_offset": 21,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 143,
+          "records": [
+            {
+              "position_offset": 210,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 160,
+          "records": [
+            {
+              "position_offset": 68,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 161,
+          "records": [
+            {
+              "position_offset": 128,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 162,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 163,
+          "records": [
+            {
+              "position_offset": 200,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 164,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 165,
+          "records": [
+            {
+              "position_offset": 202,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 166,
+          "records": [
+            {
+              "position_offset": 82,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 167,
+          "records": [
+            {
+              "position_offset": 198,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 168,
+          "records": [
+            {
+              "position_offset": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 169,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 170,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 171,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 172,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 3,
+                  "header_name": "arp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 13,
+                  "header_name": "ethernet",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 42,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 57,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 80,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 91,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 117,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 196,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 173,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 140,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 147,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 168,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 206,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 186,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 170,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 52,
+              "field_name": "gtpu.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": 288,
+          "records": [
+            {
+              "position_offset": 56,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 49,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 51,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 44,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu.npdu_flag",
+              "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": 289,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 5,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 10,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 190,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 184,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 97,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 11,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 192,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 194,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 174,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 16,
+          "records": [
+            {
+              "position_offset": 135,
+              "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": 17,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "gtpu.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": 18,
+          "records": [
+            {
+              "position_offset": 131,
+              "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": 19,
+          "records": [
+            {
+              "position_offset": 54,
+              "field_name": "gtpu_ipv4.src_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": 20,
+          "records": [
+            {
+              "position_offset": 127,
+              "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": 21,
+          "records": [
+            {
+              "position_offset": 42,
+              "field_name": "gtpu_ipv4.dst_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": 80,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 32,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 34,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "gtpu.npdu_flag",
+              "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": 81,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 82,
+          "records": [
+            {
+              "position_offset": 61,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 52,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 83,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 84,
+          "records": [
+            {
+              "position_offset": 60,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 85,
+          "records": [
+            {
+              "position_offset": 53,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 86,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
+              "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": 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,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 40,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 62,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 71,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 89,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 90,
+                  "header_name": "ipv4",
+                  "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": 112,
+                  "header_name": "mpls",
+                  "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": 118,
+                  "header_name": "packet_in",
+                  "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": 139,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 166,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 175,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 121,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 119,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 147,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 148,
+          "records": [
+            {
+              "position_offset": 67,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 149,
+          "records": [
+            {
+              "position_offset": 125,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 150,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 151,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 152,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 153,
+          "records": [
+            {
+              "position_offset": 50,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 154,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 155,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 262,
+          "records": [
+            {
+              "position_offset": 104,
+              "field_name": "ipv4.src_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": 263,
+          "records": [
+            {
+              "position_offset": 92,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 156,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 140,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 102,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 75,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 91,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 295,
+          "records": [
+            {
+              "position_offset": 74,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 116,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 113,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 110,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 160,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 148,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 154,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 146,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 76,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 98,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 100,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 150,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 164,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 144,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 347,
+          "records": [
+            {
+              "position_offset": 162,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 348,
+          "records": [
+            {
+              "position_offset": 169,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 349,
+          "records": [
+            {
+              "position_offset": 171,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 350,
+          "records": [
+            {
+              "position_offset": 167,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 9
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "gtpu_ipv4.src_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": 1,
+          "records": [
+            {
+              "position_offset": 132,
+              "field_name": "ipv4.src_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": 2,
+          "records": [
+            {
+              "position_offset": 155,
+              "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": 60,
+              "field_name": "gtpu_ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "ipv4.dst_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": 5,
+          "records": [
+            {
+              "position_offset": 159,
+              "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": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 7,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 8,
+          "records": [
+            {
+              "position_offset": 163,
+              "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": 9,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 70,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 139,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 130,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 67,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 145,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 142,
+              "field_name": "mpls.bos",
+              "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": 71,
+          "records": [
+            {
+              "position_offset": 78,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 73,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 74,
+          "records": [
+            {
+              "position_offset": 71,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 75,
+          "records": [
+            {
+              "position_offset": 131,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 76,
+          "records": [
+            {
+              "position_offset": 146,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 77,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "spgw.do_spgw",
+              "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": 78,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 90,
+              "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": 167,
+              "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": 151,
+              "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": 79,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 113,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 115,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 149,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 212,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 208,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 214,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 204,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 109,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 126,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 153,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 141,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 142,
+          "records": [
+            {
+              "position_offset": 21,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 143,
+          "records": [
+            {
+              "position_offset": 210,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 160,
+          "records": [
+            {
+              "position_offset": 68,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 161,
+          "records": [
+            {
+              "position_offset": 128,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 162,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 163,
+          "records": [
+            {
+              "position_offset": 200,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 164,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 165,
+          "records": [
+            {
+              "position_offset": 202,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 166,
+          "records": [
+            {
+              "position_offset": 82,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 167,
+          "records": [
+            {
+              "position_offset": 198,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 168,
+          "records": [
+            {
+              "position_offset": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 169,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 170,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 171,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 172,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 3,
+                  "header_name": "arp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 13,
+                  "header_name": "ethernet",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 42,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 57,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 80,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 91,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 117,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 196,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 173,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 140,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 147,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 168,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 206,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 186,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 170,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 52,
+              "field_name": "gtpu.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": 288,
+          "records": [
+            {
+              "position_offset": 56,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 49,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 51,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 44,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu.npdu_flag",
+              "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": 289,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 5,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 10,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 190,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 184,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 97,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 11,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 192,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 194,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 174,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 16,
+          "records": [
+            {
+              "position_offset": 135,
+              "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": 17,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "gtpu.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": 18,
+          "records": [
+            {
+              "position_offset": 131,
+              "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": 19,
+          "records": [
+            {
+              "position_offset": 54,
+              "field_name": "gtpu_ipv4.src_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": 20,
+          "records": [
+            {
+              "position_offset": 127,
+              "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": 21,
+          "records": [
+            {
+              "position_offset": 42,
+              "field_name": "gtpu_ipv4.dst_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": 80,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 32,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 34,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "gtpu.npdu_flag",
+              "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": 81,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 82,
+          "records": [
+            {
+              "position_offset": 61,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 52,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 83,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 84,
+          "records": [
+            {
+              "position_offset": 60,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 85,
+          "records": [
+            {
+              "position_offset": 53,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 86,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
+              "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": 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,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 40,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 62,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 71,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 89,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 90,
+                  "header_name": "ipv4",
+                  "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": 112,
+                  "header_name": "mpls",
+                  "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": 118,
+                  "header_name": "packet_in",
+                  "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": 139,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 166,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 175,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 121,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 119,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 147,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 148,
+          "records": [
+            {
+              "position_offset": 67,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 149,
+          "records": [
+            {
+              "position_offset": 125,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 150,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 151,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 152,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 153,
+          "records": [
+            {
+              "position_offset": 50,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 154,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 155,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 262,
+          "records": [
+            {
+              "position_offset": 104,
+              "field_name": "ipv4.src_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": 263,
+          "records": [
+            {
+              "position_offset": 92,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 156,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 140,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 102,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 75,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 91,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 295,
+          "records": [
+            {
+              "position_offset": 74,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 116,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 113,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 110,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 160,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 148,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 154,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 146,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 76,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 98,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 100,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 150,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 164,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 144,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 347,
+          "records": [
+            {
+              "position_offset": 162,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 348,
+          "records": [
+            {
+              "position_offset": 169,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 349,
+          "records": [
+            {
+              "position_offset": 171,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 350,
+          "records": [
+            {
+              "position_offset": 167,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 10
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "gtpu_ipv4.src_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": 1,
+          "records": [
+            {
+              "position_offset": 132,
+              "field_name": "ipv4.src_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": 2,
+          "records": [
+            {
+              "position_offset": 155,
+              "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": 60,
+              "field_name": "gtpu_ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "ipv4.dst_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": 5,
+          "records": [
+            {
+              "position_offset": 159,
+              "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": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 7,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 8,
+          "records": [
+            {
+              "position_offset": 163,
+              "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": 9,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 70,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 139,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 130,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 67,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 145,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 142,
+              "field_name": "mpls.bos",
+              "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": 71,
+          "records": [
+            {
+              "position_offset": 78,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 73,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 74,
+          "records": [
+            {
+              "position_offset": 71,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 75,
+          "records": [
+            {
+              "position_offset": 131,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 76,
+          "records": [
+            {
+              "position_offset": 146,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 77,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "spgw.do_spgw",
+              "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": 78,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 90,
+              "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": 167,
+              "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": 151,
+              "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": 79,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 113,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 115,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 149,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 212,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 208,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 214,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 204,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 109,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 126,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 153,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 141,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 142,
+          "records": [
+            {
+              "position_offset": 21,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 143,
+          "records": [
+            {
+              "position_offset": 210,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 160,
+          "records": [
+            {
+              "position_offset": 68,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 161,
+          "records": [
+            {
+              "position_offset": 128,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 162,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 163,
+          "records": [
+            {
+              "position_offset": 200,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 164,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 165,
+          "records": [
+            {
+              "position_offset": 202,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 166,
+          "records": [
+            {
+              "position_offset": 82,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 167,
+          "records": [
+            {
+              "position_offset": 198,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 168,
+          "records": [
+            {
+              "position_offset": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 169,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 170,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 171,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 172,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 3,
+                  "header_name": "arp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 13,
+                  "header_name": "ethernet",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 42,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 57,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 80,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 91,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 117,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 196,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 173,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 140,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 147,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 168,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 206,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 186,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 170,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 52,
+              "field_name": "gtpu.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": 288,
+          "records": [
+            {
+              "position_offset": 56,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 49,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 51,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 44,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu.npdu_flag",
+              "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": 289,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 5,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 10,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 190,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 184,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 97,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 11,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 192,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 194,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 174,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 16,
+          "records": [
+            {
+              "position_offset": 135,
+              "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": 17,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "gtpu.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": 18,
+          "records": [
+            {
+              "position_offset": 131,
+              "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": 19,
+          "records": [
+            {
+              "position_offset": 54,
+              "field_name": "gtpu_ipv4.src_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": 20,
+          "records": [
+            {
+              "position_offset": 127,
+              "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": 21,
+          "records": [
+            {
+              "position_offset": 42,
+              "field_name": "gtpu_ipv4.dst_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": 80,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 32,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 34,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "gtpu.npdu_flag",
+              "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": 81,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 82,
+          "records": [
+            {
+              "position_offset": 61,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 52,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 83,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 84,
+          "records": [
+            {
+              "position_offset": 60,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 85,
+          "records": [
+            {
+              "position_offset": 53,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 86,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
+              "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": 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,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 40,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 62,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 71,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 89,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 90,
+                  "header_name": "ipv4",
+                  "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": 112,
+                  "header_name": "mpls",
+                  "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": 118,
+                  "header_name": "packet_in",
+                  "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": 139,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 166,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 175,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 121,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 119,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 147,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 148,
+          "records": [
+            {
+              "position_offset": 67,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 149,
+          "records": [
+            {
+              "position_offset": 125,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 150,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 151,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 152,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 153,
+          "records": [
+            {
+              "position_offset": 50,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 154,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 155,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 262,
+          "records": [
+            {
+              "position_offset": 104,
+              "field_name": "ipv4.src_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": 263,
+          "records": [
+            {
+              "position_offset": 92,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 156,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 140,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 102,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 75,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 91,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 295,
+          "records": [
+            {
+              "position_offset": 74,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 116,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 113,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 110,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 160,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 148,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 154,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 146,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 76,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 98,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 100,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 150,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 164,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 144,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 347,
+          "records": [
+            {
+              "position_offset": 162,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 348,
+          "records": [
+            {
+              "position_offset": 169,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 349,
+          "records": [
+            {
+              "position_offset": 171,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 350,
+          "records": [
+            {
+              "position_offset": 167,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 11
+    }
+  ],
+  "tables": [
+    {
+      "direction": "ingress",
+      "handle": 16777217,
+      "name": "tbl_act",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 0,
+            "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": 0,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "result_physical_buses": [ 1 ],
+            "action_format": [
+              {
+                "action_name": "act_0",
+                "action_handle": 536870914,
+                "table_name": "tbl_act_15",
+                "next_table": 0,
+                "next_table_full": 16,
+                "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_0",
+          "handle": 536870914,
+          "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": "hasExited_0" },
+              "src": [
+                { "type": "immmediate", "name": "0" },
+                { "type": "phv", "name": "B14" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870914,
+      "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": "egress",
+      "handle": 16777218,
+      "name": "tbl_act_13",
+      "table_type": "match",
+      "size": 512,
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 0,
+            "size": 512,
+            "stage_table_type": "ternary_match",
+            "logical_table_id": 1,
+            "has_attached_gateway": false,
+            "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": 0,
+              "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": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 120,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 126,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 14,
+                      "fields": [
+                        {
+                          "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": 112,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 118,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 13,
+                      "fields": [
+                        {
+                          "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": 104,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 110,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 12,
+                      "fields": [
+                        {
+                          "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": 96,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 102,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 11,
+                      "fields": [
+                        {
+                          "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": 88,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 94,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 10,
+                      "fields": [
+                        {
+                          "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": 80,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 86,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 9,
+                      "fields": [
+                        {
+                          "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": 72,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 78,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 8,
+                      "fields": [
+                        {
+                          "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": 64,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 70,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 7,
+                      "fields": [
+                        {
+                          "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": 56,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 62,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 6,
+                      "fields": [
+                        {
+                          "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": 48,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 54,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 5,
+                      "fields": [
+                        {
+                          "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": 40,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 46,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 4,
+                      "fields": [
+                        {
+                          "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": 32,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 38,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 3,
+                      "fields": [
+                        {
+                          "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": 24,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 30,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 2,
+                      "fields": [
+                        {
+                          "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": 16,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 22,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "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": 8,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 14,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "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": 0,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 6,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": { "memory_type": "sram", "memory_units_and_vpns": [] },
+              "action_format": [
+                {
+                  "action_name": "act_13",
+                  "action_handle": 536870915,
+                  "table_name": "tbl_act_27",
+                  "next_table": 0,
+                  "next_table_full": 2,
+                  "vliw_instruction": 0,
+                  "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
+                    }
+                  ]
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "act_13",
+          "handle": 536870915,
+          "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": "B24" },
+              "src": [
+                { "type": "immediate", "name": "$data0" },
+                { "type": "phv", "name": "B24" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870915,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": []
+    },
+    {
+      "direction": "egress",
+      "handle": 16777219,
+      "name": "tbl_act_12",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 0,
+            "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": [ 0 ],
+            "action_format": [
+              {
+                "action_name": "act_12",
+                "action_handle": 536870916,
+                "table_name": "tbl_spgw_egress_gtpu_encap_0",
+                "next_table": 0,
+                "next_table_full": 17,
+                "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_12",
+          "handle": 536870916,
+          "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": "packet_in.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B25" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "packet_in.ingress_port" },
+              "src": [
+                { "type": "phv", "name": "H19" },
+                { "type": "phv", "name": "H18" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870916,
+      "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": 16777220,
+      "name": "tbl_act_0",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 1,
+            "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": 0,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "result_physical_buses": [ 0 ],
+            "action_format": [
+              {
+                "action_name": "act",
+                "action_handle": 536870917,
+                "table_name": "tbl_act_16",
+                "next_table": 0,
+                "next_table_full": 32,
+                "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",
+          "handle": 536870917,
+          "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": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "phv", "name": "H2" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "hasExited_0" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B14" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870917,
+      "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": "egress",
+      "handle": 16777221,
+      "name": "tbl_spgw_egress_gtpu_encap",
+      "table_type": "match",
+      "size": 512,
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 1,
+            "size": 512,
+            "stage_table_type": "ternary_match",
+            "logical_table_id": 1,
+            "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": 255,
+            "result_physical_buses": [],
+            "ternary_indirection_stage_table": {
+              "stage_number": 1,
+              "stage_table_type": "ternary_indirection",
+              "size": 512,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 8,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "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": 112,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 8,
+                          "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": 7,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 121,
+                          "field_name": "--padding_9_15--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 96,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 8,
+                          "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": 7,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 105,
+                          "field_name": "--padding_9_15--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 80,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 8,
+                          "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": 7,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 89,
+                          "field_name": "--padding_9_15--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 64,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 8,
+                          "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": 7,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 73,
+                          "field_name": "--padding_9_15--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 48,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 8,
+                          "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": 7,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 57,
+                          "field_name": "--padding_9_15--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 32,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 8,
+                          "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": 7,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 41,
+                          "field_name": "--padding_9_15--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 16,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 8,
+                          "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": 7,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 25,
+                          "field_name": "--padding_9_15--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 8,
+                          "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": 7,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 9,
+                          "field_name": "--padding_9_15--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": { "memory_type": "sram", "memory_units_and_vpns": [] },
+              "action_format": [
+                {
+                  "action_name": "spgw_egress.gtpu_encap",
+                  "action_handle": 536870918,
+                  "table_name": "--END_OF_PIPELINE--",
+                  "next_table": 0,
+                  "next_table_full": 255,
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 64,
+                  "immediate_fields": [
+                    {
+                      "param_name": "constant_1",
+                      "param_type": "constant",
+                      "const_value": 1,
+                      "param_shift": 0,
+                      "dest_start": 5,
+                      "dest_width": 3
+                    },
+                    {
+                      "param_name": "constant_1",
+                      "param_type": "constant",
+                      "const_value": 1,
+                      "param_shift": 0,
+                      "dest_start": 4,
+                      "dest_width": 1
+                    },
+                    {
+                      "param_name": "constant_0",
+                      "param_type": "constant",
+                      "const_value": 0,
+                      "param_shift": 0,
+                      "dest_start": 3,
+                      "dest_width": 1
+                    },
+                    {
+                      "param_name": "constant_0",
+                      "param_type": "constant",
+                      "const_value": 0,
+                      "param_shift": 0,
+                      "dest_start": 2,
+                      "dest_width": 1
+                    },
+                    {
+                      "param_name": "constant_0",
+                      "param_type": "constant",
+                      "const_value": 0,
+                      "param_shift": 0,
+                      "dest_start": 1,
+                      "dest_width": 1
+                    },
+                    {
+                      "param_name": "constant_0",
+                      "param_type": "constant",
+                      "const_value": 0,
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 1
+                    }
+                  ]
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 33554433,
+          "name": "tbl_spgw_egress_gtpu_encap_0$action"
+        }
+      ],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "spgw_egress.gtpu_encap",
+          "handle": 536870918,
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.diffserv" },
+              "src": [ { "type": "immmediate", "name": "0" } ]
+            },
+            {
+              "name": "DirectAluPrimitive",
+              "operation": "add",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.total_len" },
+              "src": [
+                { "type": "action_param", "name": "$constant12" },
+                { "type": "phv", "name": "H21" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.identification" },
+              "src": [ { "immediate": "5395" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.protocol" },
+              "src": [ { "immediate": "17" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.dst_addr" },
+              "src": [ { "type": "phv", "name": "W20" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.src_addr" },
+              "src": [ { "type": "phv", "name": "W18" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_udp.src_port" },
+              "src": [ { "immediate": "2152" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_udp.dst_port" },
+              "src": [ { "immediate": "2152" } ]
+            },
+            {
+              "name": "DirectAluPrimitive",
+              "operation": "add",
+              "dest": { "type": "phv", "name": "gtpu_udp.len" },
+              "src": [
+                { "type": "action_param", "name": "$constant11" },
+                { "type": "phv", "name": "H21" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_udp.checksum" },
+              "src": [ { "type": "immmediate", "name": "0" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu.msgtype" },
+              "src": [ { "immediate": "255" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu.msglen" },
+              "src": [ { "type": "phv", "name": "H21" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu.teid" },
+              "src": [ { "type": "phv", "name": "W16" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B16" },
+              "src": [ { "type": "immediate", "name": "$data3" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B18" },
+              "src": [ { "type": "action_param", "name": "$data0" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B24" },
+              "src": [
+                { "type": "action_param", "name": "$data1" },
+                { "type": "phv", "name": "B24" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "H24" },
+              "src": [ { "type": "action_param", "name": "$data2" } ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870918,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": []
+    },
+    {
+      "direction": "egress",
+      "handle": 33554433,
+      "name": "tbl_spgw_egress_gtpu_encap_0$action",
+      "table_type": "action",
+      "size": 2048,
+      "stage_tables": [
+        {
+          "stage_number": 1,
+          "size": 2048,
+          "stage_table_type": "action_data",
+          "logical_table_id": 1,
+          "pack_format": [
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 1,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 4,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "constant",
+                      "const_tuples": [ { "dest_start": 0, "value": 4, "dest_width": 4 } ],
+                      "lsb_mem_word_offset": 68,
+                      "field_name": "$constant6"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 4,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "constant",
+                      "const_tuples": [ { "dest_start": 0, "value": 5, "dest_width": 4 } ],
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "$constant7"
+                    },
+                    {
+                      "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": 75,
+                      "field_name": "$constant10"
+                    },
+                    {
+                      "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": 76,
+                      "field_name": "$constant8"
+                    },
+                    {
+                      "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": 77,
+                      "field_name": "$constant9"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "constant",
+                      "const_tuples": [ { "dest_start": 0, "value": 16, "dest_width": 16 } ],
+                      "lsb_mem_word_offset": 80,
+                      "field_name": "$constant11"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "constant",
+                      "const_tuples": [ { "dest_start": 0, "value": 36, "dest_width": 16 } ],
+                      "lsb_mem_word_offset": 96,
+                      "field_name": "$constant12"
+                    },
+                    {
+                      "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": 125,
+                      "field_name": "$constant13"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 13,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "constant",
+                      "const_tuples": [ { "dest_start": 0, "value": 0, "dest_width": 13 } ],
+                      "lsb_mem_word_offset": 112,
+                      "field_name": "$constant14"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 3,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 72,
+                      "field_name": "--padding_8_10--"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 2,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 78,
+                      "field_name": "--padding_14_15--"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 4,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "constant",
+                      "const_tuples": [ { "dest_start": 0, "value": 4, "dest_width": 4 } ],
+                      "lsb_mem_word_offset": 4,
+                      "field_name": "$constant6"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 4,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "constant",
+                      "const_tuples": [ { "dest_start": 0, "value": 5, "dest_width": 4 } ],
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "$constant7"
+                    },
+                    {
+                      "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": 11,
+                      "field_name": "$constant10"
+                    },
+                    {
+                      "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": 12,
+                      "field_name": "$constant8"
+                    },
+                    {
+                      "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": 13,
+                      "field_name": "$constant9"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "constant",
+                      "const_tuples": [ { "dest_start": 0, "value": 16, "dest_width": 16 } ],
+                      "lsb_mem_word_offset": 16,
+                      "field_name": "$constant11"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "constant",
+                      "const_tuples": [ { "dest_start": 0, "value": 36, "dest_width": 16 } ],
+                      "lsb_mem_word_offset": 32,
+                      "field_name": "$constant12"
+                    },
+                    {
+                      "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": 61,
+                      "field_name": "$constant13"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 13,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "constant",
+                      "const_tuples": [ { "dest_start": 0, "value": 0, "dest_width": 13 } ],
+                      "lsb_mem_word_offset": 48,
+                      "field_name": "$constant14"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 3,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 8,
+                      "field_name": "--padding_8_10--"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 2,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 14,
+                      "field_name": "--padding_14_15--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870918
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [ { "memory_units": [ 90 ], "vpns": [ 0 ] } ],
+            "spare_bank_memory_unit": 90
+          }
+        }
+      ],
+      "actions": [
+        {
+          "name": "spgw_egress.gtpu_encap",
+          "handle": 536870918,
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.diffserv" },
+              "src": [ { "type": "immmediate", "name": "0" } ]
+            },
+            {
+              "name": "DirectAluPrimitive",
+              "operation": "add",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.total_len" },
+              "src": [
+                { "type": "action_param", "name": "$constant12" },
+                { "type": "phv", "name": "H21" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.identification" },
+              "src": [ { "immediate": "5395" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.protocol" },
+              "src": [ { "immediate": "17" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.dst_addr" },
+              "src": [ { "type": "phv", "name": "W20" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.src_addr" },
+              "src": [ { "type": "phv", "name": "W18" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_udp.src_port" },
+              "src": [ { "immediate": "2152" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_udp.dst_port" },
+              "src": [ { "immediate": "2152" } ]
+            },
+            {
+              "name": "DirectAluPrimitive",
+              "operation": "add",
+              "dest": { "type": "phv", "name": "gtpu_udp.len" },
+              "src": [
+                { "type": "action_param", "name": "$constant11" },
+                { "type": "phv", "name": "H21" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_udp.checksum" },
+              "src": [ { "type": "immmediate", "name": "0" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu.msgtype" },
+              "src": [ { "immediate": "255" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu.msglen" },
+              "src": [ { "type": "phv", "name": "H21" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu.teid" },
+              "src": [ { "type": "phv", "name": "W16" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B16" },
+              "src": [ { "type": "immediate", "name": "$data3" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B18" },
+              "src": [ { "type": "action_param", "name": "$data0" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B24" },
+              "src": [
+                { "type": "action_param", "name": "$data1" },
+                { "type": "phv", "name": "B24" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "H24" },
+              "src": [ { "type": "action_param", "name": "$data2" } ]
+            }
+          ]
+        }
+      ],
+      "how_referenced": "direct"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777222,
+      "name": "tbl_act_1",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 2,
+            "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": 0,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "result_physical_buses": [ 2 ],
+            "action_format": [
+              {
+                "action_name": "act_4",
+                "action_handle": 536870919,
+                "table_name": "filtering_ingress_port_vlan",
+                "next_table": 0,
+                "next_table_full": 99,
+                "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_4",
+          "handle": 536870919,
+          "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": "0" },
+                { "type": "phv", "name": "B14" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "spgw.do_spgw" },
+              "src": [
+                { "type": "immmediate", "name": "0" },
+                { "type": "phv", "name": "B13" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870919,
+      "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": 16777223,
+      "name": "tbl_act_2",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 2,
+            "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_2",
+                "action_handle": 536870920,
+                "table_name": "spgw_ingress_ue_filter_table",
+                "next_table": 0,
+                "next_table_full": 34,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 66,
+                "immediate_fields": []
+              }
+            ],
+            "hash_functions": []
+          }
+        ],
+        "match_type": "match_with_no_key",
+        "uses_dynamic_key_masks": false
+      },
+      "actions": [
+        {
+          "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,
+          "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.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": "H32" } ]
+            },
+            {
+              "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": "H4" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "udp.dst_port" },
+              "src": [ { "type": "phv", "name": "H34" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "udp.len" },
+              "src": [ { "type": "phv", "name": "H36" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "udp.checksum" },
+              "src": [ { "type": "phv", "name": "H38" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B1" },
+              "src": [ { "type": "phv", "name": "B0" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "H10" },
+              "src": [ { "type": "phv", "name": "H9" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "H44" },
+              "src": [
+                { "type": "phv", "name": "H44" },
+                { "type": "phv", "name": "H44" }
+              ]
+            }
+          ]
+        }
+      ],
+      "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",
+      "handle": 16777224,
+      "name": "spgw_ingress.ue_filter_table",
+      "table_type": "match",
+      "size": 512,
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 2,
+            "size": 512,
+            "stage_table_type": "ternary_match",
+            "logical_table_id": 2,
+            "has_attached_gateway": false,
+            "pack_format": [
+              {
+                "table_word_width": 47,
+                "memory_word_width": 47,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 1,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_0--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--version--",
+                        "lsb_mem_word_offset": 43,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "version",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "--tcam_parity_0--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 32
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [ 0 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 0
+            },
+            "default_next_table": 0,
+            "result_physical_buses": [ 0 ],
+            "ternary_indirection_stage_table": {
+              "stage_number": 2,
+              "stage_table_type": "ternary_indirection",
+              "size": 32768,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 32,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 31,
+                      "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": 124,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 125,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 30,
+                      "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": 3,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 121,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 29,
+                      "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": 116,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 117,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 28,
+                      "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": 3,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 113,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 27,
+                      "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": 108,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 109,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 26,
+                      "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": 3,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 105,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 25,
+                      "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": 100,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 101,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 24,
+                      "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": 3,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 97,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 23,
+                      "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": 92,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 93,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 22,
+                      "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": 3,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 89,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 21,
+                      "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": 84,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 85,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 20,
+                      "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": 3,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 81,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 19,
+                      "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": 76,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 77,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 18,
+                      "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": 3,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 73,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 17,
+                      "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": 68,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 69,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 16,
+                      "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": 3,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 65,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 60,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 61,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 56,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 57,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 52,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 53,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 48,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 49,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 44,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 45,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 40,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 41,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 36,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 37,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 32,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 33,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 28,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 29,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 24,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 25,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 20,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 21,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 16,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 17,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 12,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 13,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 8,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 9,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 4,
+                          "field_name": "action"
+                        },
+                        {
+                          "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_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 3,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 1,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": {
+                "memory_type": "sram",
+                "memory_units_and_vpns": [ { "memory_units": [ 2 ], "vpns": [ 0 ] } ],
+                "spare_bank_memory_unit": 2
+              },
+              "action_format": [
+                {
+                  "action_name": "NoAction",
+                  "action_handle": 536870921,
+                  "table_name": "tbl_act_20",
+                  "next_table": 0,
+                  "next_table_full": 64,
+                  "vliw_instruction": 0,
+                  "vliw_instruction_full": 64,
+                  "immediate_fields": []
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870921,
+          "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": []
+        }
+      ],
+      "default_action_handle": 536870921,
+      "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": "lpm",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "ipv4",
+          "field_name": "dst_addr"
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777225,
+      "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_20",
+                "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_20",
+                "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",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 3,
+            "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": 0,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "result_physical_buses": [ 0 ],
+            "action_format": [
+              {
+                "action_name": "act_3",
+                "action_handle": 536870924,
+                "table_name": "tbl_act_20",
+                "next_table": 0,
+                "next_table_full": 64,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 66,
+                "immediate_fields": []
+              }
+            ],
+            "hash_functions": []
+          }
+        ],
+        "match_type": "match_with_no_key",
+        "uses_dynamic_key_masks": false
+      },
+      "actions": [
+        {
+          "name": "act_3",
+          "handle": 536870924,
+          "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": "1" },
+                { "type": "phv", "name": "B14" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870924,
+      "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": 16777228,
+      "name": "tbl_act_5",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 4,
+            "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": 0,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "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": "match_with_no_key",
+        "uses_dynamic_key_masks": false
+      },
+      "actions": [
+        {
+          "name": "act_5",
+          "handle": 536870925,
+          "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": "B14" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870925,
+      "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": 16777229,
+      "name": "spgw_ingress.dl_sess_lookup",
+      "table_type": "match",
+      "size": 3072,
+      "action_data_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 33554434,
+          "name": "spgw_ingress_dl_sess_lookup$action"
+        }
+      ],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [],
+      "stateful_table_refs": [],
+      "default_action_handle": 536870927,
+      "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"
+        }
+      ],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 5,
+            "size": 3072,
+            "stage_table_type": "hash_match",
+            "logical_table_id": 1,
+            "has_attached_gateway": true,
+            "hash_functions": [
+              {
+                "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": 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": 20, "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": 30, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 1,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "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" },
+                      { "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": 27, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 29, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 2,
+                    "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": 17, "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": 24, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 26, "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": 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": 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": 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": 28, "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": 12, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 15, "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": 27, "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": 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": 3, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 6,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 10, "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": 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": 28, "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": 7,
+                    "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": 16, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
+                      { "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": 5, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 8,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "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": 17, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 18, "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": 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": 20, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 23, "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": 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": 12, "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": 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": 28, "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": 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": 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" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 12,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "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": 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": 28, "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": 13,
+                    "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": 15, "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": 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": 1, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 14,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 10, "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": 19, "field_name": "ipv4.dst_addr" },
+                      { "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": 2, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 15,
+                    "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": 17, "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": 26, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 27, "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": 10, "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": 20, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 22, "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": 29, "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": 10, "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" },
+                      { "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": 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": 5, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 18,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "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": 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": 6, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 19,
+                    "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": 17, "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": 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": 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": 14, "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": 24, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 28, "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": 11, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 12, "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": 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": 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": 12, "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": 20, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 23, "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": 0, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 23,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "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": 24, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 26, "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": 10, "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": 20, "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": 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": 2, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 25,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "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": 20, "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": 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": 26,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "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": 17, "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": 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": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 4, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 27,
+                    "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": 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": 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": 30, "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": 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": 18, "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": 29, "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": 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": 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": 7, "field_name": "ipv4.dst_addr" }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "action_format": [
+              {
+                "action_name": "NoAction",
+                "action_handle": 536870927,
+                "table_name": "tbl_spgw_ingress_drop_now_0",
+                "next_table": 0,
+                "next_table_full": 82,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 65,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "spgw_ingress.set_dl_sess_info",
+                "action_handle": 536870926,
+                "table_name": "tbl_spgw_ingress_drop_now_0",
+                "next_table": 1,
+                "next_table_full": 82,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 64,
+                "immediate_fields": [
+                  {
+                    "param_name": "s1u_enb_addr",
+                    "param_type": "parameter",
+                    "param_shift": 0,
+                    "dest_start": 0,
+                    "dest_width": 32
+                  }
+                ]
+              }
+            ],
+            "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": 5,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 34,
+                            "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": 40,
+                            "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": 48,
+                            "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": 56,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 56,
+                            "field_name": "--padding_56_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": 5,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 34,
+                            "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": 40,
+                            "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": 48,
+                            "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": 56,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 56,
+                            "field_name": "--padding_56_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": 5,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 34,
+                            "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": 40,
+                            "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": 48,
+                            "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": 56,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 56,
+                            "field_name": "--padding_56_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": 536870927,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "spgw_ingress.set_dl_sess_info",
+          "handle": 536870926,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            { "name": "teid", "start_bit": 0, "position": 0, "bit_width": 32 },
+            {
+              "name": "s1u_enb_addr",
+              "start_bit": 32,
+              "position": 1,
+              "bit_width": 32
+            },
+            {
+              "name": "s1u_sgw_addr",
+              "start_bit": 64,
+              "position": 2,
+              "bit_width": 32
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "spgw.teid" },
+              "src": [ { "type": "action_param", "name": "teid" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "spgw.s1u_enb_addr" },
+              "src": [ { "type": "immediate", "name": "s1u_enb_addr" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "spgw.s1u_sgw_addr" },
+              "src": [ { "type": "action_param", "name": "s1u_sgw_addr" } ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 33554434,
+      "name": "spgw_ingress_dl_sess_lookup$action",
+      "table_type": "action",
+      "size": 4096,
+      "stage_tables": [
+        {
+          "stage_number": 5,
+          "size": 4096,
+          "stage_table_type": "action_data",
+          "logical_table_id": 1,
+          "pack_format": [
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 1,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 64,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "--padding_0_63--"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 64,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_63--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870927
+            },
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 1,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "s1u_sgw_addr"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 96,
+                      "field_name": "teid"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "s1u_sgw_addr"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 32,
+                      "field_name": "teid"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870926
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 90 ], "vpns": [ 0 ] },
+              { "memory_units": [ 91 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 91
+          }
+        }
+      ],
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870927,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "spgw_ingress.set_dl_sess_info",
+          "handle": 536870926,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            { "name": "teid", "start_bit": 0, "position": 0, "bit_width": 32 },
+            {
+              "name": "s1u_enb_addr",
+              "start_bit": 32,
+              "position": 1,
+              "bit_width": 32
+            },
+            {
+              "name": "s1u_sgw_addr",
+              "start_bit": 64,
+              "position": 2,
+              "bit_width": 32
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "spgw.teid" },
+              "src": [ { "type": "action_param", "name": "teid" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "spgw.s1u_enb_addr" },
+              "src": [ { "type": "immediate", "name": "s1u_enb_addr" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "spgw.s1u_sgw_addr" },
+              "src": [ { "type": "action_param", "name": "s1u_sgw_addr" } ]
+            }
+          ]
+        }
+      ],
+      "how_referenced": "direct"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777230,
+      "name": "tbl_spgw_ingress_drop_now",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 5,
+            "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": "spgw_ingress.drop_now",
+                "action_handle": 536870928,
+                "table_name": "spgw_ingress_ue_cdr_table",
+                "next_table": 0,
+                "next_table_full": 96,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 66,
+                "immediate_fields": []
+              }
+            ],
+            "hash_functions": []
+          }
+        ],
+        "match_type": "match_with_no_key",
+        "uses_dynamic_key_masks": false
+      },
+      "actions": [
+        {
+          "name": "spgw_ingress.drop_now",
+          "handle": 536870928,
+          "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": "ig_intr_md_for_tm.drop_ctl" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "H2" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "hasExited_0" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B14" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870928,
+      "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": 16777231,
+      "name": "spgw_ingress.ue_cdr_table",
+      "table_type": "match",
+      "size": 3072,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108865,
+          "name": "spgw_ingress.ue_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "default_action_handle": 536870930,
+      "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"
+        }
+      ],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 6,
+            "size": 3072,
+            "stage_table_type": "hash_match",
+            "logical_table_id": 0,
+            "has_attached_gateway": true,
+            "hash_functions": [
+              {
+                "hash_bits": [
+                  {
+                    "hash_bit": 0,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 0, "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" },
+                      { "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": 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": 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" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 1,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 1, "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": 17, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 18, "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" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 2,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 2, "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" },
+                      { "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": 20, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 25, "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" }
+                    ]
+                  },
+                  {
+                    "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": 15, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 18, "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": 29, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 4,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 4, "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": 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": 28, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 30, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 5,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 5, "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": 20, "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": 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" }
+                    ]
+                  },
+                  {
+                    "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": 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": 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": 23, "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": 29, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 31, "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": 12, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 14, "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" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 8,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 8, "field_name": "ipv4.dst_addr" },
+                      { "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": 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": 29, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 9,
+                    "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": 14, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 17, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 18, "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": 26, "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" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 10,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 0, "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": 14, "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": 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" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 11,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 1, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
+                      { "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": 20, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 26, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 12,
+                    "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": 17, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 29, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 13,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 3, "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": 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": 30, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 14,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 4, "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": 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": 30, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 15,
+                    "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": 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": 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": 29, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 16,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 6, "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": 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": 23, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 24, "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" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 17,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 7, "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": 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": 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": 31, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 18,
+                    "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": 14, "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": 23, "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" }
+                    ]
+                  },
+                  {
+                    "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": 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": 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": 29, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 20,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 0, "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": 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": 27, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 28, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 29, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 21,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 1, "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": 17, "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": 24, "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" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 22,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 2, "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": 20, "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": 31, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 23,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 3, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 17, "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": 26, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 30, "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": 11, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 22, "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" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 25,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 5, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 14, "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": 31, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 26,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 6, "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" },
+                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 17, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 27, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 27,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 7, "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": 17, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 18, "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" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 28,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 8, "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": 20, "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": 29, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 30, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 29,
+                    "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": 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": 30, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "action_format": [
+              {
+                "action_name": "spgw_ingress.update_ue_cdr",
+                "action_handle": 536870929,
+                "table_name": "tbl_act_21",
+                "next_table": 0,
+                "next_table_full": 97,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 64,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "NoAction",
+                "action_handle": 536870930,
+                "table_name": "tbl_act_21",
+                "next_table": 0,
+                "next_table_full": 97,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 64,
+                "immediate_fields": []
+              }
+            ],
+            "result_physical_buses": [ 12 ],
+            "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": 6,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 2,
+                            "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": 8,
+                            "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": 16,
+                            "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": 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": [ 74 ], "vpns": [ 0 ] } ]
+                }
+              },
+              {
+                "stage_number": 6,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 2,
+                            "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": 8,
+                            "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": 16,
+                            "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": 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": [ 75 ], "vpns": [ 1 ] } ]
+                }
+              },
+              {
+                "stage_number": 6,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 2,
+                            "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": 8,
+                            "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": 16,
+                            "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": 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": [ 76 ], "vpns": [ 2 ] } ]
+                }
+              }
+            ]
+          }
+        ],
+        "match_type": "exact",
+        "uses_dynamic_key_masks": false
+      },
+      "actions": [
+        {
+          "name": "spgw_ingress.update_ue_cdr",
+          "handle": 536870929,
+          "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": []
+        },
+        {
+          "name": "NoAction",
+          "handle": 536870930,
+          "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": 67108865,
+      "name": "spgw_ingress.ue_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 6,
+          "size": 4096,
+          "stage_table_type": "statistics",
+          "logical_table_id": 0,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 54 ], "vpns": [ 0 ] },
+              { "memory_units": [ 55 ], "vpns": [ 1 ] },
+              { "memory_units": [ 56 ], "vpns": [ 2 ] }
+            ],
+            "spare_bank_memory_unit": 56
+          },
+          "stats_alu_index": 2
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777232,
+      "name": "tbl_act_6",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 6,
+            "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_6",
+                "action_handle": 536870931,
+                "table_name": "tbl_spgw_ingress_gtpu_decap_0",
+                "next_table": 0,
+                "next_table_full": 98,
+                "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_6",
+          "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": "spgw.ipv4_len" },
+              "src": [ { "type": "phv", "name": "H13" } ]
+            }
+          ]
+        }
+      ],
+      "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": [],
+      "performs_hash_action": false,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [],
+      "stateful_table_refs": []
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777233,
+      "name": "tbl_spgw_ingress_gtpu_decap",
+      "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": 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": 3,
+            "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": 536870932,
+                  "table_name": "filtering_ingress_port_vlan",
+                  "next_table": 0,
+                  "next_table_full": 99,
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 66,
+                  "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": 536870932,
+          "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": "H44" },
+              "src": [
+                { "type": "immediate", "name": "$data0" },
+                { "type": "phv", "name": "H44" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870932,
+      "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": 16777234,
+      "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": 3,
+            "has_attached_gateway": true,
+            "pack_format": [
+              {
+                "table_word_width": 47,
+                "memory_word_width": 47,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 1,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_0--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--version--",
+                        "lsb_mem_word_offset": 43,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "version",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "--tcam_parity_0--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "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",
+                        "lsb_mem_word_offset": 20,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "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
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [ 0 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 0
+            },
+            "default_next_table": 4,
+            "result_physical_buses": [ 0 ],
+            "ternary_indirection_stage_table": {
+              "stage_number": 6,
+              "stage_table_type": "ternary_indirection",
+              "size": 4096,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 4,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 3,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 3,
+                          "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": 16,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 99,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 13,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 115,
+                          "field_name": "--padding_19_31--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 2,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 3,
+                          "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": 16,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 67,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 13,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 83,
+                          "field_name": "--padding_19_31--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 3,
+                          "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": 16,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 35,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 13,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 51,
+                          "field_name": "--padding_19_31--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 3,
+                          "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": 16,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 3,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 13,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 19,
+                          "field_name": "--padding_19_31--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": {
+                "memory_type": "sram",
+                "memory_units_and_vpns": [ { "memory_units": [ 2 ], "vpns": [ 0 ] } ],
+                "spare_bank_memory_unit": 2
+              },
+              "action_format": [
+                {
+                  "action_name": "nop",
+                  "action_handle": 536870935,
+                  "table_name": "filtering_fwd_classifier",
+                  "next_table": 0,
+                  "next_table_full": 100,
+                  "vliw_instruction": 0,
+                  "vliw_instruction_full": 64,
+                  "immediate_fields": []
+                },
+                {
+                  "action_name": "filtering.push_internal_vlan",
+                  "action_handle": 536870933,
+                  "table_name": "filtering_fwd_classifier",
+                  "next_table": 0,
+                  "next_table_full": 100,
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 67,
+                  "immediate_fields": [
+                    {
+                      "param_name": "constant_0",
+                      "param_type": "constant",
+                      "const_value": 0,
+                      "param_shift": 0,
+                      "dest_start": 12,
+                      "dest_width": 1
+                    },
+                    {
+                      "param_name": "constant_0",
+                      "param_type": "constant",
+                      "const_value": 0,
+                      "param_shift": 0,
+                      "dest_start": 13,
+                      "dest_width": 3
+                    },
+                    {
+                      "param_name": "new_vlan_id",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 12
+                    }
+                  ]
+                },
+                {
+                  "action_name": "filtering.set_vlan",
+                  "action_handle": 536870934,
+                  "table_name": "filtering_fwd_classifier",
+                  "next_table": 0,
+                  "next_table_full": 100,
+                  "vliw_instruction": 2,
+                  "vliw_instruction_full": 68,
+                  "immediate_fields": [
+                    {
+                      "param_name": "new_vlan_id",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 12
+                    }
+                  ]
+                },
+                {
+                  "action_name": "filtering.drop",
+                  "action_handle": 536870936,
+                  "table_name": "filtering_fwd_classifier",
+                  "next_table": 0,
+                  "next_table_full": 100,
+                  "vliw_instruction": 3,
+                  "vliw_instruction_full": 69,
+                  "immediate_fields": []
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108866,
+          "name": "filtering.ingress_port_vlan_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "nop",
+          "handle": 536870935,
+          "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": "filtering.push_internal_vlan",
+          "handle": 536870933,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "new_vlan_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 12
+            }
+          ],
+          "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": "vlan_tag.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "H45" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
+              "src": [ { "type": "phv", "name": "H14" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.ether_type" },
+              "src": [ { "immediate": "33024" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "fabric_metadata.pop_vlan_at_egress" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B14" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "H3" },
+              "src": [ { "type": "immediate", "name": "$data0" } ]
+            }
+          ]
+        },
+        {
+          "name": "filtering.set_vlan",
+          "handle": 536870934,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "new_vlan_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 12
+            }
+          ],
+          "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": "vlan_tag.vlan_id" },
+              "src": [
+                { "type": "immediate", "name": "new_vlan_id" },
+                { "type": "phv", "name": "H3" }
+              ]
+            }
+          ]
+        },
+        {
+          "name": "filtering.drop",
+          "handle": 536870936,
+          "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": "ig_intr_md_for_tm.drop_ctl" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "H2" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870935,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "ig_intr_md.ingress_port",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 9,
+          "bit_width_full": 9,
+          "is_valid": false,
+          "instance_name": "ig_intr_md",
+          "field_name": "ingress_port"
+        },
+        {
+          "name": "vlan_tag",
+          "position": 1,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 1,
+          "bit_width_full": 1,
+          "is_valid": true,
+          "instance_name": "vlan_tag",
+          "field_name": ""
+        },
+        {
+          "name": "vlan_tag.vlan_id",
+          "position": 2,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 12,
+          "bit_width_full": 12,
+          "is_valid": false,
+          "instance_name": "vlan_tag",
+          "field_name": "vlan_id"
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108866,
+      "name": "filtering.ingress_port_vlan_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 6,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 3,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 30 ], "vpns": [ 0 ] },
+              { "memory_units": [ 31 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 31
+          },
+          "stats_alu_index": 1
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777235,
+      "name": "filtering.fwd_classifier",
+      "table_type": "match",
+      "size": 3072,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108867,
+          "name": "filtering.fwd_classifier_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "default_action_handle": 536870937,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "ig_intr_md.ingress_port",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 9,
+          "bit_width_full": 9,
+          "is_valid": false,
+          "instance_name": "ig_intr_md",
+          "field_name": "ingress_port"
+        },
+        {
+          "name": "ethernet.dst_addr",
+          "position": 1,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 48,
+          "bit_width_full": 48,
+          "is_valid": false,
+          "instance_name": "ethernet",
+          "field_name": "dst_addr"
+        },
+        {
+          "name": "fabric_metadata.original_ether_type",
+          "position": 2,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 16,
+          "bit_width_full": 16,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "original_ether_type"
+        }
+      ],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 6,
+            "size": 3072,
+            "stage_table_type": "hash_match",
+            "logical_table_id": 4,
+            "has_attached_gateway": false,
+            "hash_functions": [
+              {
+                "hash_bits": [
+                  {
+                    "hash_bit": 0,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 0, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 1,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 1, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 2,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 2, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 3,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 3, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 4,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 4, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 5,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 5, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 6,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 6, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 7,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 7, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 8,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 8, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 9,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 10,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 0, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 11,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 1, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 12,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 2, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 13,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 3, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 14,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 4, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 15,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 5, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 16,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 6, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 17,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 7, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 18,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 8, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 19,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 20,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 0, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 21,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 1, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 22,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 2, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 23,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 3, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 24,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 4, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 25,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 5, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 26,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 6, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 27,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 7, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 28,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 8, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 29,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "action_format": [
+              {
+                "action_name": "filtering.set_forwarding_type",
+                "action_handle": 536870937,
+                "table_name": "tbl_act_25",
+                "next_table": 0,
+                "next_table_full": 101,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 70,
+                "immediate_fields": [
+                  {
+                    "param_name": "fwd_type",
+                    "param_type": "parameter",
+                    "param_shift": 0,
+                    "dest_start": 1,
+                    "dest_width": 3
+                  }
+                ]
+              }
+            ],
+            "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": 6,
+                "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": "immediate",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 4,
+                            "field_name": "version",
+                            "match_mode": "s1q0"
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 65,
+                            "start_bit": 9,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 7
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 8,
+                            "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": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 16,
+                            "start_bit": 24,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "start_bit": 32,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 32,
+                            "start_bit": 40,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "fabric_metadata.original_ether_type",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "start_bit": 0,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "fabric_metadata.original_ether_type",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 48,
+                            "start_bit": 8,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ig_intr_md.ingress_port",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 56,
+                            "start_bit": 0,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 64,
+                            "field_name": "--padding_64_64--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 56,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 72,
+                            "field_name": "--padding_72_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": 6,
+                "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": "immediate",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 4,
+                            "field_name": "version",
+                            "match_mode": "s1q0"
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 65,
+                            "start_bit": 9,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 7
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 8,
+                            "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": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 16,
+                            "start_bit": 24,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "start_bit": 32,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 32,
+                            "start_bit": 40,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "fabric_metadata.original_ether_type",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "start_bit": 0,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "fabric_metadata.original_ether_type",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 48,
+                            "start_bit": 8,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ig_intr_md.ingress_port",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 56,
+                            "start_bit": 0,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 64,
+                            "field_name": "--padding_64_64--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 56,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 72,
+                            "field_name": "--padding_72_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": 6,
+                "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": "immediate",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 4,
+                            "field_name": "version",
+                            "match_mode": "s1q0"
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 65,
+                            "start_bit": 9,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 7
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 8,
+                            "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": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 16,
+                            "start_bit": 24,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "start_bit": 32,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 32,
+                            "start_bit": 40,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "fabric_metadata.original_ether_type",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "start_bit": 0,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "fabric_metadata.original_ether_type",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 48,
+                            "start_bit": 8,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ig_intr_md.ingress_port",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 56,
+                            "start_bit": 0,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 64,
+                            "field_name": "--padding_64_64--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 56,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 72,
+                            "field_name": "--padding_72_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": "filtering.set_forwarding_type",
+          "handle": 536870937,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "p4_parameters": [
+            {
+              "name": "fwd_type",
+              "start_bit": 0,
+              "position": 0,
+              "default_value": 0,
+              "bit_width": 3
+            }
+          ],
+          "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": "fabric_metadata.fwd_type" },
+              "src": [
+                { "type": "immediate", "name": "fwd_type" },
+                { "type": "phv", "name": "B13" }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108867,
+      "name": "filtering.fwd_classifier_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 6,
+          "size": 4096,
+          "stage_table_type": "statistics",
+          "logical_table_id": 4,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 78 ], "vpns": [ 0 ] },
+              { "memory_units": [ 79 ], "vpns": [ 1 ] },
+              { "memory_units": [ 80 ], "vpns": [ 2 ] }
+            ],
+            "spare_bank_memory_unit": 80
+          },
+          "stats_alu_index": 3
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777236,
+      "name": "tbl_act_10",
+      "table_type": "match",
+      "size": 512,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 6,
+            "size": 1,
+            "stage_table_type": "match_with_no_key",
+            "logical_table_id": 5,
+            "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": 0,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "result_physical_buses": [ 2 ],
+            "action_format": [
+              {
+                "action_name": "act_10",
+                "action_handle": 536870938,
+                "table_name": "forwarding_bridging",
+                "next_table": 0,
+                "next_table_full": 112,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 64,
+                "immediate_fields": []
+              }
+            ],
+            "hash_functions": []
+          }
+        ],
+        "match_type": "match_with_no_key",
+        "uses_dynamic_key_masks": false
+      },
+      "actions": [
+        {
+          "name": "act_10",
+          "handle": 536870938,
+          "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": []
+        }
+      ],
+      "default_action_handle": 536870938,
+      "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": true,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "indirect",
+          "handle": 67108868,
+          "name": "port_counters_control.ingress_port_counter"
+        }
+      ],
+      "stateful_table_refs": []
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108868,
+      "name": "port_counters_control.ingress_port_counter",
+      "table_type": "statistics",
+      "size": 511,
+      "stage_tables": [
+        {
+          "stage_number": 6,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 5,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 6 ], "vpns": [ 0 ] },
+              { "memory_units": [ 7 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 7
+          },
+          "stats_alu_index": 0
+        }
+      ],
+      "how_referenced": "indirect",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777237,
+      "name": "forwarding.bridging",
+      "table_type": "match",
+      "size": 512,
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 7,
+            "size": 512,
+            "stage_table_type": "ternary_match",
+            "logical_table_id": 0,
+            "has_attached_gateway": true,
+            "pack_format": [
+              {
+                "table_word_width": 94,
+                "memory_word_width": 47,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 2,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_1--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_1--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ethernet.dst_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 16,
+                        "field_width": 32
+                      },
+                      {
+                        "field_name": "ethernet.dst_addr",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "--tcam_payload_0--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--version--",
+                        "lsb_mem_word_offset": 43,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "version",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "--tcam_parity_0--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "vlan_tag.vlan_id",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ethernet.dst_addr",
+                        "lsb_mem_word_offset": 9,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "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
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [ 0, 1 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 1
+            },
+            "default_next_table": 0,
+            "result_physical_buses": [ 0, 2 ],
+            "ternary_indirection_stage_table": {
+              "stage_number": 7,
+              "stage_table_type": "ternary_indirection",
+              "size": 2048,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 2,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 66,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 98,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 2,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 34,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": {
+                "memory_type": "sram",
+                "memory_units_and_vpns": [ { "memory_units": [ 2 ], "vpns": [ 0 ] } ],
+                "spare_bank_memory_unit": 2
+              },
+              "action_format": [
+                {
+                  "action_name": "NoAction",
+                  "action_handle": 536870940,
+                  "table_name": "forwarding_acl",
+                  "next_table": 0,
+                  "next_table_full": 128,
+                  "vliw_instruction": 0,
+                  "vliw_instruction_full": 65,
+                  "immediate_fields": []
+                },
+                {
+                  "action_name": "forwarding.set_next_id",
+                  "action_handle": 536870939,
+                  "table_name": "forwarding_acl",
+                  "next_table": 0,
+                  "next_table_full": 128,
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 64,
+                  "immediate_fields": [
+                    {
+                      "param_name": "next_id",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 32
+                    }
+                  ]
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108869,
+          "name": "forwarding.bridging_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870940,
+          "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": "forwarding.set_next_id",
+          "handle": 536870939,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "next_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 32
+            }
+          ],
+          "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": "fabric_metadata.next_id" },
+              "src": [ { "type": "immediate", "name": "next_id" } ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870940,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "vlan_tag.vlan_id",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 12,
+          "bit_width_full": 12,
+          "is_valid": false,
+          "instance_name": "vlan_tag",
+          "field_name": "vlan_id"
+        },
+        {
+          "name": "ethernet.dst_addr",
+          "position": 1,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 48,
+          "bit_width_full": 48,
+          "is_valid": false,
+          "instance_name": "ethernet",
+          "field_name": "dst_addr"
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108869,
+      "name": "forwarding.bridging_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 7,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 0,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 6 ], "vpns": [ 0 ] },
+              { "memory_units": [ 7 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 7
+          },
+          "stats_alu_index": 0
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777238,
+      "name": "forwarding.mpls",
+      "table_type": "match",
+      "size": 3072,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108870,
+          "name": "forwarding.mpls_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "default_action_handle": 536870942,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "mpls.label",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 20,
+          "bit_width_full": 20,
+          "is_valid": false,
+          "instance_name": "mpls",
+          "field_name": "label"
+        }
+      ],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 7,
+            "size": 3072,
+            "stage_table_type": "hash_match",
+            "logical_table_id": 1,
+            "has_attached_gateway": true,
+            "hash_functions": [
+              {
+                "hash_bits": [
+                  {
+                    "hash_bit": 0,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 4, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 1,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 5, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 2,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 6, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 3,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 7, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 4,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 8, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 5,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 9, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 6,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 0, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 7,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 1, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 8,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 2, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 9,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 3, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 10,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 4, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 11,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 5, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 12,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 6, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 13,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 7, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 14,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 8, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 15,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 9, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 16,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 0, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 17,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 1, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 18,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 2, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 19,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 3, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 20,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 4, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 21,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 5, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 22,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 6, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 23,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 7, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 24,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 8, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 25,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 9, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 26,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 0, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 27,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 1, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 28,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 2, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 29,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 3, "field_name": "mpls.label" }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "action_format": [
+              {
+                "action_name": "NoAction",
+                "action_handle": 536870942,
+                "table_name": "tbl_act_22",
+                "next_table": 0,
+                "next_table_full": 116,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 65,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "forwarding.pop_mpls_and_next",
+                "action_handle": 536870941,
+                "table_name": "tbl_act_22",
+                "next_table": 0,
+                "next_table_full": 116,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 66,
+                "immediate_fields": [
+                  {
+                    "param_name": "next_id",
+                    "param_type": "parameter",
+                    "param_shift": 0,
+                    "dest_start": 0,
+                    "dest_width": 32
+                  }
+                ]
+              }
+            ],
+            "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": 7,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "mpls.label",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 38,
+                            "start_bit": 10,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 2
+                          },
+                          {
+                            "field_name": "mpls.label",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "start_bit": 12,
+                            "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": 4,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 34,
+                            "field_name": "--padding_34_37--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 64,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 48,
+                            "field_name": "--padding_48_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": 7,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "mpls.label",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 38,
+                            "start_bit": 10,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 2
+                          },
+                          {
+                            "field_name": "mpls.label",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "start_bit": 12,
+                            "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": 4,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 34,
+                            "field_name": "--padding_34_37--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 64,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 48,
+                            "field_name": "--padding_48_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": 7,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "mpls.label",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 38,
+                            "start_bit": 10,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 2
+                          },
+                          {
+                            "field_name": "mpls.label",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "start_bit": 12,
+                            "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": 4,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 34,
+                            "field_name": "--padding_34_37--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 64,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 48,
+                            "field_name": "--padding_48_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": 536870942,
+          "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": []
+        },
+        {
+          "name": "forwarding.pop_mpls_and_next",
+          "handle": 536870941,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "p4_parameters": [
+            {
+              "name": "next_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 32
+            }
+          ],
+          "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": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "0" },
+                { "type": "phv", "name": "H45" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "fabric_metadata.next_id" },
+              "src": [ { "type": "immediate", "name": "next_id" } ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108870,
+      "name": "forwarding.mpls_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 7,
+          "size": 4096,
+          "stage_table_type": "statistics",
+          "logical_table_id": 1,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 78 ], "vpns": [ 0 ] },
+              { "memory_units": [ 79 ], "vpns": [ 1 ] },
+              { "memory_units": [ 80 ], "vpns": [ 2 ] }
+            ],
+            "spare_bank_memory_unit": 80
+          },
+          "stats_alu_index": 3
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777239,
+      "name": "tbl_act_7",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 7,
+            "size": 1,
+            "stage_table_type": "match_with_no_key",
+            "logical_table_id": 4,
+            "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": [ 0 ],
+            "action_format": [
+              {
+                "action_name": "act_7",
+                "action_handle": 536870943,
+                "table_name": "forwarding_acl",
+                "next_table": 0,
+                "next_table_full": 128,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 67,
+                "immediate_fields": []
+              }
+            ],
+            "hash_functions": []
+          }
+        ],
+        "match_type": "match_with_no_key",
+        "uses_dynamic_key_masks": false
+      },
+      "actions": [
+        {
+          "name": "act_7",
+          "handle": 536870943,
+          "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": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "2048" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "fabric_metadata.original_ether_type" },
+              "src": [ { "immediate": "2048" } ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870943,
+      "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": 16777240,
+      "name": "forwarding.unicast_v4",
+      "table_type": "match",
+      "size": 512,
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 7,
+            "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,
+                "number_memory_units_per_table_word": 1,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_0--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--version--",
+                        "lsb_mem_word_offset": 43,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "version",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "--tcam_parity_0--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 24,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 9,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 24
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [ 5 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 5
+            },
+            "default_next_table": 0,
+            "result_physical_buses": [ 10 ],
+            "ternary_indirection_stage_table": {
+              "stage_number": 7,
+              "stage_table_type": "ternary_indirection",
+              "size": 2048,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 2,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 66,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 98,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 2,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 34,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": {
+                "memory_type": "sram",
+                "memory_units_and_vpns": [ { "memory_units": [ 14 ], "vpns": [ 0 ] } ],
+                "spare_bank_memory_unit": 14
+              },
+              "action_format": [
+                {
+                  "action_name": "NoAction",
+                  "action_handle": 536870945,
+                  "table_name": "forwarding_acl",
+                  "next_table": 0,
+                  "next_table_full": 128,
+                  "vliw_instruction": 0,
+                  "vliw_instruction_full": 65,
+                  "immediate_fields": []
+                },
+                {
+                  "action_name": "forwarding.set_next_id",
+                  "action_handle": 536870944,
+                  "table_name": "forwarding_acl",
+                  "next_table": 0,
+                  "next_table_full": 128,
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 68,
+                  "immediate_fields": [
+                    {
+                      "param_name": "next_id",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 32
+                    }
+                  ]
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108871,
+          "name": "forwarding.unicast_v4_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870945,
+          "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": "forwarding.set_next_id",
+          "handle": 536870944,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "next_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 32
+            }
+          ],
+          "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": "fabric_metadata.next_id" },
+              "src": [ { "type": "immediate", "name": "next_id" } ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870945,
+      "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": "lpm",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "ipv4",
+          "field_name": "dst_addr"
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108871,
+      "name": "forwarding.unicast_v4_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 7,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 2,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 30 ], "vpns": [ 0 ] },
+              { "memory_units": [ 31 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 31
+          },
+          "stats_alu_index": 1
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777241,
+      "name": "forwarding.multicast_v4",
+      "table_type": "match",
+      "size": 512,
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 7,
+            "size": 512,
+            "stage_table_type": "ternary_match",
+            "logical_table_id": 3,
+            "has_attached_gateway": true,
+            "pack_format": [
+              {
+                "table_word_width": 141,
+                "memory_word_width": 47,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 3,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_2--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_2--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "vlan_tag.vlan_id",
+                        "lsb_mem_word_offset": 17,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "--tcam_payload_1--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_1--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 24,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "--tcam_payload_0--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--version--",
+                        "lsb_mem_word_offset": 43,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "version",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "--tcam_parity_0--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 16
+                      },
+                      {
+                        "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": 8,
+                        "field_width": 4
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 25,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [ 2, 3, 4 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 4
+            },
+            "default_next_table": 0,
+            "result_physical_buses": [ 4, 6, 8 ],
+            "ternary_indirection_stage_table": {
+              "stage_number": 7,
+              "stage_table_type": "ternary_indirection",
+              "size": 2048,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 2,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 66,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 98,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 2,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 34,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": {
+                "memory_type": "sram",
+                "memory_units_and_vpns": [ { "memory_units": [ 26 ], "vpns": [ 0 ] } ],
+                "spare_bank_memory_unit": 26
+              },
+              "action_format": [
+                {
+                  "action_name": "NoAction",
+                  "action_handle": 536870947,
+                  "table_name": "forwarding_acl",
+                  "next_table": 0,
+                  "next_table_full": 128,
+                  "vliw_instruction": 0,
+                  "vliw_instruction_full": 65,
+                  "immediate_fields": []
+                },
+                {
+                  "action_name": "forwarding.set_next_id",
+                  "action_handle": 536870946,
+                  "table_name": "forwarding_acl",
+                  "next_table": 0,
+                  "next_table_full": 128,
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 70,
+                  "immediate_fields": [
+                    {
+                      "param_name": "next_id",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 32
+                    }
+                  ]
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108872,
+          "name": "forwarding.multicast_v4_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870947,
+          "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": "forwarding.set_next_id",
+          "handle": 536870946,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "next_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 32
+            }
+          ],
+          "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": "fabric_metadata.next_id" },
+              "src": [ { "type": "immediate", "name": "next_id" } ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870947,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "vlan_tag.vlan_id",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 12,
+          "bit_width_full": 12,
+          "is_valid": false,
+          "instance_name": "vlan_tag",
+          "field_name": "vlan_id"
+        },
+        {
+          "name": "ipv4.dst_addr",
+          "position": 1,
+          "match_type": "lpm",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "ipv4",
+          "field_name": "dst_addr"
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108872,
+      "name": "forwarding.multicast_v4_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 7,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 3,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 54 ], "vpns": [ 0 ] },
+              { "memory_units": [ 55 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 55
+          },
+          "stats_alu_index": 2
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777242,
+      "name": "forwarding.acl",
+      "table_type": "match",
+      "size": 256,
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 8,
+            "size": 512,
+            "stage_table_type": "ternary_match",
+            "logical_table_id": 0,
+            "has_attached_gateway": false,
+            "pack_format": [
+              {
+                "table_word_width": 282,
+                "memory_word_width": 47,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 6,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_5--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 5,
+                        "msb_mem_word_idx": 5,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_5--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 5,
+                        "msb_mem_word_idx": 5,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ethernet.dst_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 5,
+                        "msb_mem_word_idx": 5,
+                        "source": "spec",
+                        "start_bit": 16,
+                        "field_width": 32
+                      },
+                      {
+                        "field_name": "ethernet.src_addr",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 5,
+                        "msb_mem_word_idx": 5,
+                        "source": "spec",
+                        "start_bit": 16,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ig_intr_md.ingress_port",
+                        "lsb_mem_word_offset": 41,
+                        "lsb_mem_word_idx": 5,
+                        "msb_mem_word_idx": 5,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_payload_4--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--version--",
+                        "lsb_mem_word_offset": 43,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "version",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "--tcam_parity_4--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ethernet.src_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "spec",
+                        "start_bit": 32,
+                        "field_width": 16
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 17,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ethernet.src_addr",
+                        "lsb_mem_word_offset": 25,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "spec",
+                        "start_bit": 24,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "spec",
+                        "start_bit": 16,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "--tcam_payload_3--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_3--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "spec",
+                        "start_bit": 24,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ipv4.src_addr",
+                        "lsb_mem_word_offset": 9,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 17,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ipv4.src_addr",
+                        "lsb_mem_word_offset": 25,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "spec",
+                        "start_bit": 16,
+                        "field_width": 16
+                      },
+                      {
+                        "field_name": "fabric_metadata.l4_dst_port",
+                        "lsb_mem_word_offset": 41,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 4
+                      },
+                      {
+                        "field_name": "fabric_metadata.l4_dst_port",
+                        "lsb_mem_word_offset": 41,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "spec",
+                        "start_bit": 4,
+                        "field_width": 4
+                      },
+                      {
+                        "field_name": "--tcam_payload_2--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_2--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ipv4.src_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ethernet.dst_addr",
+                        "lsb_mem_word_offset": 9,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 16
+                      },
+                      {
+                        "field_name": "ethernet.src_addr",
+                        "lsb_mem_word_offset": 25,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 16
+                      },
+                      {
+                        "field_name": "--tcam_payload_1--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_1--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "fabric_metadata.l4_src_port",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "fabric_metadata.l4_dst_port",
+                        "lsb_mem_word_offset": 9,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "fabric_metadata.original_ether_type",
+                        "lsb_mem_word_offset": 17,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "fabric_metadata.l4_src_port",
+                        "lsb_mem_word_offset": 25,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ig_intr_md.ingress_port",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "icmp.icmp_type",
+                        "lsb_mem_word_offset": 41,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 4
+                      },
+                      {
+                        "field_name": "icmp.icmp_type",
+                        "lsb_mem_word_offset": 41,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 4,
+                        "field_width": 4
+                      },
+                      {
+                        "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
+                      },
+                      {
+                        "field_name": "vlan_tag.vlan_id",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "fabric_metadata.original_ether_type",
+                        "lsb_mem_word_offset": 9,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "fabric_metadata.ip_proto",
+                        "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": "icmp.icmp_code",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [ 0, 1, 2, 3, 4, 5 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 5
+            },
+            "default_next_table": 0,
+            "result_physical_buses": [ 0, 2, 4, 6, 8, 10 ],
+            "ternary_indirection_stage_table": {
+              "stage_number": 8,
+              "stage_table_type": "ternary_indirection",
+              "size": 2048,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 2,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 66,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 98,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 2,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 34,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": {
+                "memory_type": "sram",
+                "memory_units_and_vpns": [ { "memory_units": [ 2 ], "vpns": [ 0 ] } ],
+                "spare_bank_memory_unit": 2
+              },
+              "action_format": [
+                {
+                  "action_name": "nop",
+                  "action_handle": 536870951,
+                  "table_name": "next_simple",
+                  "next_table": 0,
+                  "next_table_full": 144,
+                  "vliw_instruction": 0,
+                  "vliw_instruction_full": 67,
+                  "immediate_fields": []
+                },
+                {
+                  "action_name": "forwarding.set_next_id",
+                  "action_handle": 536870948,
+                  "table_name": "next_simple",
+                  "next_table": 0,
+                  "next_table_full": 144,
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 64,
+                  "immediate_fields": [
+                    {
+                      "param_name": "next_id",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 32
+                    }
+                  ]
+                },
+                {
+                  "action_name": "forwarding.duplicate_to_controller",
+                  "action_handle": 536870949,
+                  "table_name": "next_simple",
+                  "next_table": 0,
+                  "next_table_full": 144,
+                  "vliw_instruction": 2,
+                  "vliw_instruction_full": 65,
+                  "immediate_fields": [
+                    {
+                      "param_name": "constant_320",
+                      "param_type": "constant",
+                      "const_value": 320,
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 9
+                    }
+                  ]
+                },
+                {
+                  "action_name": "forwarding.drop",
+                  "action_handle": 536870950,
+                  "table_name": "next_simple",
+                  "next_table": 0,
+                  "next_table_full": 144,
+                  "vliw_instruction": 3,
+                  "vliw_instruction_full": 66,
+                  "immediate_fields": []
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108873,
+          "name": "forwarding.acl_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "nop",
+          "handle": 536870951,
+          "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": "forwarding.set_next_id",
+          "handle": 536870948,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "next_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 32
+            }
+          ],
+          "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": "fabric_metadata.next_id" },
+              "src": [ { "type": "immediate", "name": "next_id" } ]
+            }
+          ]
+        },
+        {
+          "name": "forwarding.duplicate_to_controller",
+          "handle": 536870949,
+          "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": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "immediate", "name": "$constant0" },
+                { "type": "phv", "name": "H1" }
+              ]
+            }
+          ]
+        },
+        {
+          "name": "forwarding.drop",
+          "handle": 536870950,
+          "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": "ig_intr_md_for_tm.drop_ctl" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "H2" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870951,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "ig_intr_md.ingress_port",
+          "position": 0,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 9,
+          "bit_width_full": 9,
+          "is_valid": false,
+          "instance_name": "ig_intr_md",
+          "field_name": "ingress_port"
+        },
+        {
+          "name": "fabric_metadata.ip_proto",
+          "position": 1,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 8,
+          "bit_width_full": 8,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "ip_proto"
+        },
+        {
+          "name": "fabric_metadata.l4_src_port",
+          "position": 2,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 16,
+          "bit_width_full": 16,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "l4_src_port"
+        },
+        {
+          "name": "fabric_metadata.l4_dst_port",
+          "position": 3,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 16,
+          "bit_width_full": 16,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "l4_dst_port"
+        },
+        {
+          "name": "fabric_metadata.original_ether_type",
+          "position": 4,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 16,
+          "bit_width_full": 16,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "original_ether_type"
+        },
+        {
+          "name": "ethernet.dst_addr",
+          "position": 5,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 48,
+          "bit_width_full": 48,
+          "is_valid": false,
+          "instance_name": "ethernet",
+          "field_name": "dst_addr"
+        },
+        {
+          "name": "ethernet.src_addr",
+          "position": 6,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 48,
+          "bit_width_full": 48,
+          "is_valid": false,
+          "instance_name": "ethernet",
+          "field_name": "src_addr"
+        },
+        {
+          "name": "vlan_tag.vlan_id",
+          "position": 7,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 12,
+          "bit_width_full": 12,
+          "is_valid": false,
+          "instance_name": "vlan_tag",
+          "field_name": "vlan_id"
+        },
+        {
+          "name": "ipv4.src_addr",
+          "position": 8,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "ipv4",
+          "field_name": "src_addr"
+        },
+        {
+          "name": "ipv4.dst_addr",
+          "position": 9,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "ipv4",
+          "field_name": "dst_addr"
+        },
+        {
+          "name": "icmp.icmp_type",
+          "position": 10,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 8,
+          "bit_width_full": 8,
+          "is_valid": false,
+          "instance_name": "icmp",
+          "field_name": "icmp_type"
+        },
+        {
+          "name": "icmp.icmp_code",
+          "position": 11,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 8,
+          "bit_width_full": 8,
+          "is_valid": false,
+          "instance_name": "icmp",
+          "field_name": "icmp_code"
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108873,
+      "name": "forwarding.acl_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 8,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 0,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 78 ], "vpns": [ 0 ] },
+              { "memory_units": [ 79 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 79
+          },
+          "stats_alu_index": 3
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777243,
+      "name": "next.simple",
+      "table_type": "match",
+      "size": 3072,
+      "action_data_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 33554435,
+          "name": "next_simple$action"
+        }
+      ],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108874,
+          "name": "next.simple_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "default_action_handle": 536870956,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "fabric_metadata.next_id",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "next_id"
+        }
+      ],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 9,
+            "size": 3072,
+            "stage_table_type": "hash_match",
+            "logical_table_id": 0,
+            "has_attached_gateway": false,
+            "hash_functions": [
+              {
+                "hash_bits": [
+                  {
+                    "hash_bit": 0,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 1,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 24,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 2,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 3,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 17,
+                        "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": 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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 4,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 17,
+                        "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": 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": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 5,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 16,
+                        "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": 22,
+                        "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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 6,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "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": 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": 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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 7,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 16,
+                        "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": 22,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 8,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 19,
+                        "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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 9,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 20,
+                        "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": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 10,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 11,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 12,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "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": 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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 13,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "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": 21,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 14,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "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": 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": 24,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 15,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 19,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 21,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 16,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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": 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": 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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 17,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 22,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 18,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "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": 22,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 19,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "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": 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": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 20,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 16,
+                        "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": 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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 21,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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": 20,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 22,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 23,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 24,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 25,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "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": 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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 26,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 16,
+                        "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"
+                      },
+                      {
+                        "field_bit": 24,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 25,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 27,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 28,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "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": 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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 29,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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": 24,
+                        "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"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "action_format": [
+              {
+                "action_name": "NoAction",
+                "action_handle": 536870956,
+                "table_name": "next_hashed",
+                "next_table": 0,
+                "next_table_full": 162,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 65,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.output",
+                "action_handle": 536870952,
+                "table_name": "next_hashed",
+                "next_table": 1,
+                "next_table_full": 162,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 64,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.set_vlan_output",
+                "action_handle": 536870953,
+                "table_name": "next_hashed",
+                "next_table": 2,
+                "next_table_full": 162,
+                "vliw_instruction": 2,
+                "vliw_instruction_full": 66,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.l3_routing",
+                "action_handle": 536870954,
+                "table_name": "next_hashed",
+                "next_table": 3,
+                "next_table_full": 162,
+                "vliw_instruction": 3,
+                "vliw_instruction_full": 68,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.mpls_routing_v4",
+                "action_handle": 536870955,
+                "table_name": "next_hashed",
+                "next_table": 4,
+                "next_table_full": 162,
+                "vliw_instruction": 4,
+                "vliw_instruction_full": 70,
+                "immediate_fields": [
+                  {
+                    "param_name": "constant_0",
+                    "param_type": "constant",
+                    "const_value": 0,
+                    "param_shift": 0,
+                    "dest_start": 1,
+                    "dest_width": 3
+                  },
+                  {
+                    "param_name": "constant_1",
+                    "param_type": "constant",
+                    "const_value": 1,
+                    "param_shift": 0,
+                    "dest_start": 0,
+                    "dest_width": 1
+                  },
+                  {
+                    "param_name": "label",
+                    "param_type": "parameter",
+                    "param_shift": 0,
+                    "dest_start": 4,
+                    "dest_width": 4
+                  }
+                ]
+              }
+            ],
+            "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": 9,
+                "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": 3,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 8,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 3,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 12,
+                            "field_name": "version",
+                            "match_mode": "s1q0"
+                          },
+                          {
+                            "field_name": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 34,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 16,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 11,
+                            "field_name": "--padding_11_11--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 32,
+                            "field_name": "--padding_32_33--",
+                            "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": 40,
+                            "field_name": "--padding_40_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": 9,
+                "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": 3,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 8,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 3,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 12,
+                            "field_name": "version",
+                            "match_mode": "s1q0"
+                          },
+                          {
+                            "field_name": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 34,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 16,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 11,
+                            "field_name": "--padding_11_11--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 32,
+                            "field_name": "--padding_32_33--",
+                            "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": 40,
+                            "field_name": "--padding_40_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": 9,
+                "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": 3,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 8,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 3,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 12,
+                            "field_name": "version",
+                            "match_mode": "s1q0"
+                          },
+                          {
+                            "field_name": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 34,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 16,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 11,
+                            "field_name": "--padding_11_11--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 32,
+                            "field_name": "--padding_32_33--",
+                            "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": 40,
+                            "field_name": "--padding_40_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": 536870956,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "next.output",
+          "handle": 536870952,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            }
+          ]
+        },
+        {
+          "name": "next.set_vlan_output",
+          "handle": 536870953,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "new_vlan_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 12
+            },
+            {
+              "name": "port_num",
+              "start_bit": 12,
+              "position": 1,
+              "bit_width": 9
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.vlan_id" },
+              "src": [
+                { "type": "action_param", "name": "new_vlan_id" },
+                { "type": "phv", "name": "H3" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "fabric_metadata.pop_vlan_at_egress" },
+              "src": [
+                { "type": "immmediate", "name": "0" },
+                { "type": "phv", "name": "B14" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            }
+          ]
+        },
+        {
+          "name": "next.l3_routing",
+          "handle": 536870954,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 }
+          ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            }
+          ]
+        },
+        {
+          "name": "next.mpls_routing_v4",
+          "handle": 536870955,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 },
+            {
+              "name": "label",
+              "start_bit": 105,
+              "position": 3,
+              "bit_width": 20
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "H45" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "34887" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.label.4-19" },
+              "src": [ { "type": "action_param", "name": "label.4-19" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B6" },
+              "src": [ { "type": "immediate", "name": "$data0" } ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108874,
+      "name": "next.simple_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 9,
+          "size": 4096,
+          "stage_table_type": "statistics",
+          "logical_table_id": 0,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 78 ], "vpns": [ 0 ] },
+              { "memory_units": [ 79 ], "vpns": [ 1 ] },
+              { "memory_units": [ 80 ], "vpns": [ 2 ] }
+            ],
+            "spare_bank_memory_unit": 80
+          },
+          "stats_alu_index": 3
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 33554435,
+      "name": "next_simple$action",
+      "table_type": "action",
+      "size": 3072,
+      "stage_tables": [
+        {
+          "stage_number": 9,
+          "size": 3072,
+          "stage_table_type": "action_data",
+          "logical_table_id": 0,
+          "pack_format": [
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 128,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_127--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870956
+            },
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 9,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 48,
+                      "field_name": "port_num"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 48,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_47--"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 71,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 57,
+                      "field_name": "--padding_57_127--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870952
+            },
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 9,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 32,
+                      "field_name": "port_num"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 12,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 48,
+                      "field_name": "new_vlan_id"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_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": 68,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 60,
+                      "field_name": "--padding_60_127--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870953
+            },
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 9,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 16,
+                      "field_name": "port_num"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 32,
+                      "field_name": "dmac"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 48,
+                      "field_name": "smac"
+                    },
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "dmac"
+                    },
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 96,
+                      "field_name": "smac"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_15--"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 7,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 25,
+                      "field_name": "--padding_25_31--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870954
+            },
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 9,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 0,
+                      "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": 16,
+                      "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": 32,
+                      "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": 48,
+                      "field_name": "smac"
+                    },
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "dmac"
+                    },
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 96,
+                      "field_name": "smac"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 7,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 9,
+                      "field_name": "--padding_9_15--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870955
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 90 ], "vpns": [ 0 ] },
+              { "memory_units": [ 91 ], "vpns": [ 1 ] },
+              { "memory_units": [ 92 ], "vpns": [ 2 ] }
+            ],
+            "spare_bank_memory_unit": 92
+          }
+        }
+      ],
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870956,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "next.output",
+          "handle": 536870952,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            }
+          ]
+        },
+        {
+          "name": "next.set_vlan_output",
+          "handle": 536870953,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "new_vlan_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 12
+            },
+            {
+              "name": "port_num",
+              "start_bit": 12,
+              "position": 1,
+              "bit_width": 9
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.vlan_id" },
+              "src": [
+                { "type": "action_param", "name": "new_vlan_id" },
+                { "type": "phv", "name": "H3" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "fabric_metadata.pop_vlan_at_egress" },
+              "src": [
+                { "type": "immmediate", "name": "0" },
+                { "type": "phv", "name": "B14" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            }
+          ]
+        },
+        {
+          "name": "next.l3_routing",
+          "handle": 536870954,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 }
+          ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            }
+          ]
+        },
+        {
+          "name": "next.mpls_routing_v4",
+          "handle": 536870955,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 },
+            {
+              "name": "label",
+              "start_bit": 105,
+              "position": 3,
+              "bit_width": 20
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "H45" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "34887" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.label.4-19" },
+              "src": [ { "type": "action_param", "name": "label.4-19" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B6" },
+              "src": [ { "type": "immediate", "name": "$data0" } ]
+            }
+          ]
+        }
+      ],
+      "how_referenced": "direct"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777244,
+      "name": "tbl_act_8",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 10,
+            "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": [ 0 ],
+            "action_format": [
+              {
+                "action_name": "act_8",
+                "action_handle": 536870957,
+                "table_name": "next_hashed",
+                "next_table": 0,
+                "next_table_full": 162,
+                "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_8",
+          "handle": 536870957,
+          "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": "DirectAluPrimitive",
+              "operation": "add",
+              "dest": { "type": "phv", "name": "ipv4.ttl" },
+              "src": [
+                { "type": "immmediate", "name": "255" },
+                { "type": "phv", "name": "B8" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870957,
+      "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": 16777245,
+      "name": "next.hashed",
+      "table_type": "match",
+      "size": 3072,
+      "action_data_table_refs": [
+        {
+          "how_referenced": "indirect",
+          "handle": 33554436,
+          "name": "next.ecmp_selector"
+        }
+      ],
+      "selection_table_refs": [
+        {
+          "how_referenced": "indirect",
+          "handle": 50331649,
+          "name": "next.ecmp_selector"
+        }
+      ],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108875,
+          "name": "next.hashed_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "default_selector_mask": 0,
+      "default_selector_value": 0,
+      "default_action_handle": 536870961,
+      "action_profile": "next.ecmp_selector",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "fabric_metadata.next_id",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "next_id"
+        }
+      ],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 10,
+            "size": 3072,
+            "stage_table_type": "hash_match",
+            "logical_table_id": 2,
+            "has_attached_gateway": false,
+            "hash_functions": [
+              {
+                "hash_bits": [
+                  {
+                    "hash_bit": 0,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 1,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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"
+                      },
+                      {
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 2,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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_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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 3,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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"
+                      },
+                      {
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 4,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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_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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 5,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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": 31,
+                        "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_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 6,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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_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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 7,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "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": 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": 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_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 8,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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": 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_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 9,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 10,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "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_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 11,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 12,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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_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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 13,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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"
+                      },
+                      {
+                        "field_bit": 17,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 14,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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"
+                      },
+                      {
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 15,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 3,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 16,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 12,
+                        "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_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": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 17,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 17,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 18,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "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_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 19,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 19,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 20,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "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_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 21,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 22,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 23,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 24,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 2,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "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_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": 3,
+                        "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": 19,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 20,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 26,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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"
+                      },
+                      {
+                        "field_bit": 17,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 27,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "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_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 28,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "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_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 29,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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": 7,
+                        "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": 22,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "action_format": [
+              {
+                "action_name": "NoAction",
+                "action_handle": 536870961,
+                "table_name": "tbl_act_26",
+                "next_table": 0,
+                "next_table_full": 176,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 67,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.l3_routing",
+                "action_handle": 536870958,
+                "table_name": "tbl_act_26",
+                "next_table": 0,
+                "next_table_full": 176,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 65,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.mpls_routing_v4",
+                "action_handle": 536870959,
+                "table_name": "tbl_act_26",
+                "next_table": 0,
+                "next_table_full": 176,
+                "vliw_instruction": 2,
+                "vliw_instruction_full": 66,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.mpls_routing_v6",
+                "action_handle": 536870960,
+                "table_name": "tbl_act_26",
+                "next_table": 0,
+                "next_table_full": 176,
+                "vliw_instruction": 3,
+                "vliw_instruction_full": 68,
+                "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": 10,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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"
+                          },
+                          {
+                            "start_bit": 7,
+                            "enable_pfe": true,
+                            "field_width": 10,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "sel_ptr",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "meter_addr",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 5,
+                            "enable_pfe": false,
+                            "field_width": 11,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "adt_ptr",
+                            "lsb_mem_word_offset": 13,
+                            "field_name": "action_addr",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "field_name": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 42,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 32,
+                            "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": 40,
+                            "field_name": "--padding_40_41--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 64,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 48,
+                            "field_name": "--padding_48_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": 10,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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"
+                          },
+                          {
+                            "start_bit": 7,
+                            "enable_pfe": true,
+                            "field_width": 10,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "sel_ptr",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "meter_addr",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 5,
+                            "enable_pfe": false,
+                            "field_width": 11,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "adt_ptr",
+                            "lsb_mem_word_offset": 13,
+                            "field_name": "action_addr",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "field_name": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 42,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 32,
+                            "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": 40,
+                            "field_name": "--padding_40_41--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 64,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 48,
+                            "field_name": "--padding_48_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": 10,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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"
+                          },
+                          {
+                            "start_bit": 7,
+                            "enable_pfe": true,
+                            "field_width": 10,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "sel_ptr",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "meter_addr",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 5,
+                            "enable_pfe": false,
+                            "field_width": 11,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "adt_ptr",
+                            "lsb_mem_word_offset": 13,
+                            "field_name": "action_addr",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "field_name": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 42,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 32,
+                            "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": 40,
+                            "field_name": "--padding_40_41--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 64,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 48,
+                            "field_name": "--padding_48_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": 536870961,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "next.l3_routing",
+          "handle": 536870958,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 }
+          ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            }
+          ]
+        },
+        {
+          "name": "next.mpls_routing_v4",
+          "handle": 536870959,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 },
+            {
+              "name": "label",
+              "start_bit": 105,
+              "position": 3,
+              "bit_width": 20
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "H45" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "34887" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.label.4-19" },
+              "src": [ { "type": "action_param", "name": "label.4-19" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B6" },
+              "src": [ { "type": "action_param", "name": "$data0" } ]
+            }
+          ]
+        },
+        {
+          "name": "next.mpls_routing_v6",
+          "handle": 536870960,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 },
+            {
+              "name": "label",
+              "start_bit": 105,
+              "position": 3,
+              "bit_width": 20
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "H45" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "34887" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.label.4-19" },
+              "src": [ { "type": "action_param", "name": "label.4-19" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B6" },
+              "src": [ { "type": "action_param", "name": "$data0" } ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 50331649,
+      "name": "next.ecmp_selector",
+      "table_type": "selection",
+      "size": 1024,
+      "selection_type": "fair",
+      "how_referenced": "indirect",
+      "max_port_pool_size": 120,
+      "bound_to_action_data_table_handle": 33554436,
+      "stage_tables": [
+        {
+          "stage_number": 10,
+          "size": 1024,
+          "stage_table_type": "selection",
+          "logical_table_id": 2,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [ { "memory_units": [ 90 ], "vpns": [ 0 ] } ],
+            "spare_bank_memory_unit": 91
+          },
+          "meter_alu_index": 3
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 33554436,
+      "name": "next.ecmp_selector",
+      "table_type": "action",
+      "size": 64,
+      "stage_tables": [
+        {
+          "stage_number": 10,
+          "size": 262144,
+          "stage_table_type": "action_data",
+          "logical_table_id": 2,
+          "pack_format": [
+            {
+              "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": 256,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 1,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870961
+            },
+            {
+              "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": 9,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 48,
+                      "field_name": "port_num"
+                    },
+                    {
+                      "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": 48,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_47--"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 7,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 57,
+                      "field_name": "--padding_57_63--"
+                    },
+                    {
+                      "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": 536870958
+            },
+            {
+              "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": 536870959
+            },
+            {
+              "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": 536870960
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [ { "memory_units": [ 89, 92 ], "vpns": [ 0 ] } ],
+            "spare_bank_memory_unit": [ 92, 89 ]
+          }
+        }
+      ],
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870961,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "next.l3_routing",
+          "handle": 536870958,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 }
+          ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            }
+          ]
+        },
+        {
+          "name": "next.mpls_routing_v4",
+          "handle": 536870959,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 },
+            {
+              "name": "label",
+              "start_bit": 105,
+              "position": 3,
+              "bit_width": 20
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "H45" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "34887" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.label.4-19" },
+              "src": [ { "type": "action_param", "name": "label.4-19" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B6" },
+              "src": [ { "type": "action_param", "name": "$data0" } ]
+            }
+          ]
+        },
+        {
+          "name": "next.mpls_routing_v6",
+          "handle": 536870960,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 },
+            {
+              "name": "label",
+              "start_bit": 105,
+              "position": 3,
+              "bit_width": 20
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "H45" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "34887" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.label.4-19" },
+              "src": [ { "type": "action_param", "name": "label.4-19" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B6" },
+              "src": [ { "type": "action_param", "name": "$data0" } ]
+            }
+          ]
+        }
+      ],
+      "how_referenced": "indirect"
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108875,
+      "name": "next.hashed_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 10,
+          "size": 4096,
+          "stage_table_type": "statistics",
+          "logical_table_id": 2,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 78 ], "vpns": [ 0 ] },
+              { "memory_units": [ 79 ], "vpns": [ 1 ] },
+              { "memory_units": [ 80 ], "vpns": [ 2 ] }
+            ],
+            "spare_bank_memory_unit": 80
+          },
+          "stats_alu_index": 3
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777246,
+      "name": "tbl_act_11",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 11,
+            "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": 0,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "result_physical_buses": [ 1 ],
+            "action_format": [
+              {
+                "action_name": "act_11",
+                "action_handle": 536870962,
+                "table_name": "tbl_act_24",
+                "next_table": 0,
+                "next_table_full": 177,
+                "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_11",
+          "handle": 536870962,
+          "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": "ethernet.ether_type" },
+              "src": [ { "type": "phv", "name": "H15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "0" },
+                { "type": "phv", "name": "H45" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870962,
+      "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": 16777247,
+      "name": "tbl_act_9",
+      "table_type": "match",
+      "size": 512,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 11,
+            "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": 0,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "result_physical_buses": [ 0 ],
+            "action_format": [
+              {
+                "action_name": "act_9",
+                "action_handle": 536870963,
+                "table_name": "next_broadcast",
+                "next_table": 0,
+                "next_table_full": 178,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 65,
+                "immediate_fields": []
+              }
+            ],
+            "hash_functions": []
+          }
+        ],
+        "match_type": "match_with_no_key",
+        "uses_dynamic_key_masks": false
+      },
+      "actions": [
+        {
+          "name": "act_9",
+          "handle": 536870963,
+          "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": []
+        }
+      ],
+      "default_action_handle": 536870963,
+      "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": true,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "indirect",
+          "handle": 67108876,
+          "name": "port_counters_control.egress_port_counter"
+        }
+      ],
+      "stateful_table_refs": []
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108876,
+      "name": "port_counters_control.egress_port_counter",
+      "table_type": "statistics",
+      "size": 511,
+      "stage_tables": [
+        {
+          "stage_number": 11,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 1,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 54 ], "vpns": [ 0 ] },
+              { "memory_units": [ 55 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 55
+          },
+          "stats_alu_index": 2
+        }
+      ],
+      "how_referenced": "indirect",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777248,
+      "name": "next.broadcast",
+      "table_type": "match",
+      "size": 3072,
+      "action_data_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 33554437,
+          "name": "next_broadcast$action"
+        }
+      ],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108877,
+          "name": "next.broadcast_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "default_action_handle": 536870965,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "fabric_metadata.next_id",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "next_id"
+        }
+      ],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 11,
+            "size": 3072,
+            "stage_table_type": "hash_match",
+            "logical_table_id": 2,
+            "has_attached_gateway": false,
+            "hash_functions": [
+              {
+                "hash_bits": [
+                  {
+                    "hash_bit": 0,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 17,
+                        "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": 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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 1,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 17,
+                        "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": 1,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 2,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 23,
+                        "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": 2,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 3,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 22,
+                        "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": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 4,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 24,
+                        "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": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 5,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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": 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"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 6,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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": 6,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 7,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 22,
+                        "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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 8,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 24,
+                        "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": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 9,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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": 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": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 10,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 17,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "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": 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": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 11,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 17,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 12,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 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": 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": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 13,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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_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": 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": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 14,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 15,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 16,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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"
+                      },
+                      {
+                        "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": 6,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 17,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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": 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": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 18,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 17,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "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": 25,
+                        "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": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 19,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 17,
+                        "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": 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": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 20,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "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"
+                      },
+                      {
+                        "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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 21,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 17,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "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": 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": 1,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 22,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 18,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 19,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "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": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 23,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 20,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "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": 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": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 24,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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": 28,
+                        "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": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 25,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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": 25,
+                        "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": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 26,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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": 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"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 27,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 17,
+                        "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": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 28,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 17,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "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": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 29,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 24,
+                        "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": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "action_format": [
+              {
+                "action_name": "NoAction",
+                "action_handle": 536870965,
+                "table_name": "--END_OF_PIPELINE--",
+                "next_table": 0,
+                "next_table_full": 255,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 65,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.set_mcast_group",
+                "action_handle": 536870964,
+                "table_name": "--END_OF_PIPELINE--",
+                "next_table": 0,
+                "next_table_full": 255,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 66,
+                "immediate_fields": [
+                  {
+                    "param_name": "gid",
+                    "param_type": "parameter",
+                    "param_shift": 0,
+                    "dest_start": 16,
+                    "dest_width": 16
+                  },
+                  {
+                    "param_name": "smac",
+                    "param_type": "parameter",
+                    "param_shift": 0,
+                    "dest_start": 0,
+                    "dest_width": 16
+                  }
+                ]
+              }
+            ],
+            "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": 11,
+                "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 1,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 34,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 48,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 33,
+                            "field_name": "--padding_33_33--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 56,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 56,
+                            "field_name": "--padding_56_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": 11,
+                "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 1,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 34,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 48,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 33,
+                            "field_name": "--padding_33_33--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 56,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 56,
+                            "field_name": "--padding_56_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": 11,
+                "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 1,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 34,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 48,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 33,
+                            "field_name": "--padding_33_33--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 56,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 56,
+                            "field_name": "--padding_56_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": 536870965,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "next.set_mcast_group",
+          "handle": 536870964,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            { "name": "gid", "start_bit": 0, "position": 0, "bit_width": 16 },
+            { "name": "smac", "start_bit": 16, "position": 1, "bit_width": 48 }
+          ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.mcast_grp_a" },
+              "src": [ { "type": "immediate", "name": "gid" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "immediate", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108877,
+      "name": "next.broadcast_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 11,
+          "size": 4096,
+          "stage_table_type": "statistics",
+          "logical_table_id": 2,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 78 ], "vpns": [ 0 ] },
+              { "memory_units": [ 79 ], "vpns": [ 1 ] },
+              { "memory_units": [ 80 ], "vpns": [ 2 ] }
+            ],
+            "spare_bank_memory_unit": 80
+          },
+          "stats_alu_index": 3
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 33554437,
+      "name": "next_broadcast$action",
+      "table_type": "action",
+      "size": 4096,
+      "stage_tables": [
+        {
+          "stage_number": 11,
+          "size": 4096,
+          "stage_table_type": "action_data",
+          "logical_table_id": 2,
+          "pack_format": [
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 4,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 3,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 96,
+                      "field_name": "--padding_0_31--"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 2,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "--padding_0_31--"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 1,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 32,
+                      "field_name": "--padding_0_31--"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_31--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870965
+            },
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 4,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 3,
+                  "fields": [
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 96,
+                      "field_name": "smac"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 2,
+                  "fields": [
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "smac"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 1,
+                  "fields": [
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 32,
+                      "field_name": "smac"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "smac"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870964
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [ { "memory_units": [ 90 ], "vpns": [ 0 ] } ],
+            "spare_bank_memory_unit": 90
+          }
+        }
+      ],
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870965,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "next.set_mcast_group",
+          "handle": 536870964,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            { "name": "gid", "start_bit": 0, "position": 0, "bit_width": 16 },
+            { "name": "smac", "start_bit": 16, "position": 1, "bit_width": 48 }
+          ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.mcast_grp_a" },
+              "src": [ { "type": "immediate", "name": "gid" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "immediate", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            }
+          ]
+        }
+      ],
+      "how_referenced": "direct"
+    }
+  ],
+  "configuration_cache": [
+    {
+      "fully_qualified_name": "pmarb.ebp18_reg.ebp_reg[0].epb_prsr_port_regs.chnl_ctrl[0]",
+      "name": "parser0_chnl_ctrl_0",
+      "value": "00a41fff"
+    },
+    {
+      "fully_qualified_name": "pmarb.ebp18_reg.ebp_reg[0].epb_prsr_port_regs.chnl_ctrl[1]",
+      "name": "parser0_chnl_ctrl_1",
+      "value": "00a41fff"
+    },
+    {
+      "fully_qualified_name": "pmarb.ebp18_reg.ebp_reg[0].epb_prsr_port_regs.chnl_ctrl[2]",
+      "name": "parser0_chnl_ctrl_2",
+      "value": "00a41fff"
+    },
+    {
+      "fully_qualified_name": "pmarb.ebp18_reg.ebp_reg[0].epb_prsr_port_regs.chnl_ctrl[3]",
+      "name": "parser0_chnl_ctrl_3",
+      "value": "00a41fff"
+    },
+    {
+      "fully_qualified_name": "pmarb.ebp18_reg.ebp_reg[0].epb_prsr_port_regs.multi_threading",
+      "name": "parser0_multi_threading",
+      "value": "19522020"
+    },
+    {
+      "fully_qualified_name": "mau[0].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_0_match_input_xbar_din_power_ctl",
+      "value": "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[1].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_1_match_input_xbar_din_power_ctl",
+      "value": "000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[2].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_2_match_input_xbar_din_power_ctl",
+      "value": "0000001000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[3].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_3_match_input_xbar_din_power_ctl",
+      "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": "0000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[5].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_5_match_input_xbar_din_power_ctl",
+      "value": "0000001000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[5].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_5_parity_group_mask",
+      "value": "00000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[6].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_6_match_input_xbar_din_power_ctl",
+      "value": "0000005000000000000000000000000000000000000000400000000000000000000000880000000000000000000000000000000000000029000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[6].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_6_parity_group_mask",
+      "value": "00000001000000000000000c00000000000000020000000000000008000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[7].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_7_match_input_xbar_din_power_ctl",
+      "value": "0000005000000000000000000000000000000040000000200000000000000000000000480000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[7].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_7_parity_group_mask",
+      "value": "00000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[8].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_8_match_input_xbar_din_power_ctl",
+      "value": "000000d20000000000000000000000000000002400000080000000000000000000000088000000010000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[9].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_9_match_input_xbar_din_power_ctl",
+      "value": "0000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[9].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_9_parity_group_mask",
+      "value": "00000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[10].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_10_match_input_xbar_din_power_ctl",
+      "value": "0000001200000002000000000000000000000000000000800000000000000000000000000000000100000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[10].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_10_parity_group_mask",
+      "value": "00000001000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[11].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_11_match_input_xbar_din_power_ctl",
+      "value": "0000000000000002000000000000000000000000000000400000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[11].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_11_parity_group_mask",
+      "value": "00000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    }
+  ]
+}
\ No newline at end of file
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
new file mode 100644
index 0000000..cb3e8ff
--- /dev/null
+++ b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/mavericks/fabric.p4info
@@ -0,0 +1,879 @@
+tables {
+  preamble {
+    id: 33574964
+    name: "spgw_ingress.ue_filter_table"
+    alias: "ue_filter_table"
+  }
+  match_fields {
+    id: 1
+    name: "ipv4.dst_addr"
+    bitwidth: 32
+    match_type: LPM
+  }
+  action_refs {
+    id: 16800567
+  }
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33570382
+    name: "spgw_ingress.s1u_filter_table"
+    alias: "s1u_filter_table"
+  }
+  match_fields {
+    id: 1
+    name: "spgw_meta.s1u_sgw_addr"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16800567
+  }
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33590421
+    name: "spgw_ingress.dl_sess_lookup"
+    alias: "dl_sess_lookup"
+  }
+  match_fields {
+    id: 1
+    name: "ipv4.dst_addr"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16784665
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33594626
+    name: "spgw_ingress.ue_cdr_table"
+    alias: "ue_cdr_table"
+  }
+  match_fields {
+    id: 1
+    name: "ipv4.dst_addr"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16800269
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 302053240
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33578399
+    name: "filtering.ingress_port_vlan"
+    alias: "ingress_port_vlan"
+  }
+  match_fields {
+    id: 1
+    name: "standard_metadata.ingress_port"
+    bitwidth: 9
+    match_type: EXACT
+  }
+  match_fields {
+    id: 2
+    name: "hdr.vlan_tag.is_valid"
+    bitwidth: 1
+    match_type: EXACT
+  }
+  match_fields {
+    id: 3
+    name: "hdr.vlan_tag.vlan_id"
+    bitwidth: 12
+    match_type: TERNARY
+  }
+  action_refs {
+    id: 16794505
+  }
+  action_refs {
+    id: 16782367
+  }
+  action_refs {
+    id: 16819938
+  }
+  action_refs {
+    id: 16826365
+  }
+  const_default_action_id: 16819938
+  direct_resource_ids: 302015144
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33619540
+    name: "filtering.fwd_classifier"
+    alias: "fwd_classifier"
+  }
+  match_fields {
+    id: 1
+    name: "standard_metadata.ingress_port"
+    bitwidth: 9
+    match_type: EXACT
+  }
+  match_fields {
+    id: 2
+    name: "hdr.ethernet.dst_addr"
+    bitwidth: 48
+    match_type: EXACT
+  }
+  match_fields {
+    id: 3
+    name: "fabric_metadata.original_ether_type"
+    bitwidth: 16
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16838162
+  }
+  const_default_action_id: 16838162
+  direct_resource_ids: 302033694
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33569146
+    name: "forwarding.bridging"
+    alias: "bridging"
+  }
+  match_fields {
+    id: 1
+    name: "hdr.vlan_tag.vlan_id"
+    bitwidth: 12
+    match_type: EXACT
+  }
+  match_fields {
+    id: 2
+    name: "hdr.ethernet.dst_addr"
+    bitwidth: 48
+    match_type: TERNARY
+  }
+  action_refs {
+    id: 16829931
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 302047449
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33565386
+    name: "forwarding.mpls"
+    alias: "mpls"
+  }
+  match_fields {
+    id: 1
+    name: "hdr.mpls.label"
+    bitwidth: 20
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16842717
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 302001577
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33589684
+    name: "forwarding.unicast_v4"
+    alias: "unicast_v4"
+  }
+  match_fields {
+    id: 1
+    name: "hdr.ipv4.dst_addr"
+    bitwidth: 32
+    match_type: LPM
+  }
+  action_refs {
+    id: 16829931
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 302038636
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33615204
+    name: "forwarding.multicast_v4"
+    alias: "multicast_v4"
+  }
+  match_fields {
+    id: 1
+    name: "hdr.vlan_tag.vlan_id"
+    bitwidth: 12
+    match_type: EXACT
+  }
+  match_fields {
+    id: 2
+    name: "hdr.ipv4.dst_addr"
+    bitwidth: 32
+    match_type: LPM
+  }
+  action_refs {
+    id: 16829931
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 302009236
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33587782
+    name: "forwarding.acl"
+    alias: "acl"
+  }
+  match_fields {
+    id: 1
+    name: "standard_metadata.ingress_port"
+    bitwidth: 9
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 2
+    name: "fabric_metadata.ip_proto"
+    bitwidth: 8
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 3
+    name: "fabric_metadata.l4_src_port"
+    bitwidth: 16
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 4
+    name: "fabric_metadata.l4_dst_port"
+    bitwidth: 16
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 5
+    name: "fabric_metadata.original_ether_type"
+    bitwidth: 16
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 6
+    name: "hdr.ethernet.dst_addr"
+    bitwidth: 48
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 7
+    name: "hdr.ethernet.src_addr"
+    bitwidth: 48
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 8
+    name: "hdr.vlan_tag.vlan_id"
+    bitwidth: 12
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 9
+    name: "hdr.ipv4.src_addr"
+    bitwidth: 32
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 10
+    name: "hdr.ipv4.dst_addr"
+    bitwidth: 32
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 11
+    name: "hdr.icmp.icmp_type"
+    bitwidth: 8
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 12
+    name: "hdr.icmp.icmp_code"
+    bitwidth: 8
+    match_type: TERNARY
+  }
+  action_refs {
+    id: 16829931
+  }
+  action_refs {
+    id: 16805452
+  }
+  action_refs {
+    id: 16815978
+  }
+  action_refs {
+    id: 16819938
+  }
+  const_default_action_id: 16819938
+  direct_resource_ids: 302000008
+  size: 256
+}
+tables {
+  preamble {
+    id: 33615740
+    name: "next.simple"
+    alias: "simple"
+  }
+  match_fields {
+    id: 1
+    name: "fabric_metadata.next_id"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16818315
+  }
+  action_refs {
+    id: 16837690
+  }
+  action_refs {
+    id: 16804266
+  }
+  action_refs {
+    id: 16841192
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 301991179
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33569488
+    name: "next.hashed"
+    alias: "hashed"
+  }
+  match_fields {
+    id: 1
+    name: "fabric_metadata.next_id"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16804266
+  }
+  action_refs {
+    id: 16841192
+  }
+  action_refs {
+    id: 16788519
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  implementation_id: 285225078
+  direct_resource_ids: 301993193
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33608545
+    name: "next.broadcast"
+    alias: "broadcast"
+  }
+  match_fields {
+    id: 1
+    name: "fabric_metadata.next_id"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16778974
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 301995093
+  size: 1024
+}
+actions {
+  preamble {
+    id: 16800567
+    name: "NoAction"
+    alias: "NoAction"
+  }
+}
+actions {
+  preamble {
+    id: 16819938
+    name: "nop"
+    alias: "nop"
+  }
+}
+actions {
+  preamble {
+    id: 16840488
+    name: "spgw_ingress.drop_now"
+    alias: "drop_now"
+  }
+}
+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"
+  }
+  params {
+    id: 1
+    name: "teid"
+    bitwidth: 32
+  }
+  params {
+    id: 2
+    name: "s1u_enb_addr"
+    bitwidth: 32
+  }
+  params {
+    id: 3
+    name: "s1u_sgw_addr"
+    bitwidth: 32
+  }
+}
+actions {
+  preamble {
+    id: 16800269
+    name: "spgw_ingress.update_ue_cdr"
+    alias: "update_ue_cdr"
+  }
+}
+actions {
+  preamble {
+    id: 16826365
+    name: "filtering.drop"
+    alias: "filtering.drop"
+  }
+}
+actions {
+  preamble {
+    id: 16782367
+    name: "filtering.set_vlan"
+    alias: "set_vlan"
+  }
+  params {
+    id: 1
+    name: "new_vlan_id"
+    bitwidth: 12
+  }
+}
+actions {
+  preamble {
+    id: 16794505
+    name: "filtering.push_internal_vlan"
+    alias: "push_internal_vlan"
+  }
+  params {
+    id: 1
+    name: "new_vlan_id"
+    bitwidth: 12
+  }
+}
+actions {
+  preamble {
+    id: 16838162
+    name: "filtering.set_forwarding_type"
+    alias: "set_forwarding_type"
+  }
+  params {
+    id: 1
+    name: "fwd_type"
+    bitwidth: 3
+  }
+}
+actions {
+  preamble {
+    id: 16815978
+    name: "forwarding.drop"
+    alias: "forwarding.drop"
+  }
+}
+actions {
+  preamble {
+    id: 16829931
+    name: "forwarding.set_next_id"
+    alias: "set_next_id"
+  }
+  params {
+    id: 1
+    name: "next_id"
+    bitwidth: 32
+  }
+}
+actions {
+  preamble {
+    id: 16842717
+    name: "forwarding.pop_mpls_and_next"
+    alias: "pop_mpls_and_next"
+  }
+  params {
+    id: 1
+    name: "next_id"
+    bitwidth: 32
+  }
+}
+actions {
+  preamble {
+    id: 16805452
+    name: "forwarding.duplicate_to_controller"
+    alias: "duplicate_to_controller"
+  }
+}
+actions {
+  preamble {
+    id: 16818315
+    name: "next.output"
+    alias: "output"
+  }
+  params {
+    id: 1
+    name: "port_num"
+    bitwidth: 9
+  }
+}
+actions {
+  preamble {
+    id: 16837690
+    name: "next.set_vlan_output"
+    alias: "set_vlan_output"
+  }
+  params {
+    id: 1
+    name: "new_vlan_id"
+    bitwidth: 12
+  }
+  params {
+    id: 2
+    name: "port_num"
+    bitwidth: 9
+  }
+}
+actions {
+  preamble {
+    id: 16804266
+    name: "next.l3_routing"
+    alias: "l3_routing"
+  }
+  params {
+    id: 1
+    name: "port_num"
+    bitwidth: 9
+  }
+  params {
+    id: 2
+    name: "smac"
+    bitwidth: 48
+  }
+  params {
+    id: 3
+    name: "dmac"
+    bitwidth: 48
+  }
+}
+actions {
+  preamble {
+    id: 16778974
+    name: "next.set_mcast_group"
+    alias: "set_mcast_group"
+  }
+  params {
+    id: 1
+    name: "gid"
+    bitwidth: 16
+  }
+  params {
+    id: 2
+    name: "smac"
+    bitwidth: 48
+  }
+}
+actions {
+  preamble {
+    id: 16841192
+    name: "next.mpls_routing_v4"
+    alias: "mpls_routing_v4"
+  }
+  params {
+    id: 1
+    name: "port_num"
+    bitwidth: 9
+  }
+  params {
+    id: 2
+    name: "smac"
+    bitwidth: 48
+  }
+  params {
+    id: 3
+    name: "dmac"
+    bitwidth: 48
+  }
+  params {
+    id: 4
+    name: "label"
+    bitwidth: 20
+  }
+}
+actions {
+  preamble {
+    id: 16788519
+    name: "next.mpls_routing_v6"
+    alias: "mpls_routing_v6"
+  }
+  params {
+    id: 1
+    name: "port_num"
+    bitwidth: 9
+  }
+  params {
+    id: 2
+    name: "smac"
+    bitwidth: 48
+  }
+  params {
+    id: 3
+    name: "dmac"
+    bitwidth: 48
+  }
+  params {
+    id: 4
+    name: "label"
+    bitwidth: 20
+  }
+}
+actions {
+  preamble {
+    id: 16839213
+    name: "spgw_egress.gtpu_encap"
+    alias: "gtpu_encap"
+  }
+}
+action_profiles {
+  preamble {
+    id: 285225078
+    name: "next.ecmp_selector"
+    alias: "ecmp_selector"
+  }
+  table_ids: 33569488
+  with_selector: true
+  size: 64
+}
+counters {
+  preamble {
+    id: 302025528
+    name: "port_counters_control.egress_port_counter"
+    alias: "egress_port_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  size: 511
+}
+counters {
+  preamble {
+    id: 301999025
+    name: "port_counters_control.ingress_port_counter"
+    alias: "ingress_port_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  size: 511
+}
+direct_counters {
+  preamble {
+    id: 302053240
+    name: "spgw_ingress.ue_counter"
+    alias: "ue_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33594626
+}
+direct_counters {
+  preamble {
+    id: 302015144
+    name: "filtering.ingress_port_vlan_counter"
+    alias: "ingress_port_vlan_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33578399
+}
+direct_counters {
+  preamble {
+    id: 302033694
+    name: "filtering.fwd_classifier_counter"
+    alias: "fwd_classifier_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33619540
+}
+direct_counters {
+  preamble {
+    id: 302047449
+    name: "forwarding.bridging_counter"
+    alias: "bridging_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33569146
+}
+direct_counters {
+  preamble {
+    id: 302001577
+    name: "forwarding.mpls_counter"
+    alias: "mpls_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33565386
+}
+direct_counters {
+  preamble {
+    id: 302038636
+    name: "forwarding.unicast_v4_counter"
+    alias: "unicast_v4_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33589684
+}
+direct_counters {
+  preamble {
+    id: 302009236
+    name: "forwarding.multicast_v4_counter"
+    alias: "multicast_v4_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33615204
+}
+direct_counters {
+  preamble {
+    id: 302000008
+    name: "forwarding.acl_counter"
+    alias: "acl_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33587782
+}
+direct_counters {
+  preamble {
+    id: 301991179
+    name: "next.simple_counter"
+    alias: "simple_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33615740
+}
+direct_counters {
+  preamble {
+    id: 301993193
+    name: "next.hashed_counter"
+    alias: "hashed_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33569488
+}
+direct_counters {
+  preamble {
+    id: 301995093
+    name: "next.broadcast_counter"
+    alias: "broadcast_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33608545
+}
+controller_packet_metadata {
+  preamble {
+    id: 2868941301
+    name: "packet_in"
+    annotations: "@controller_header(\"packet_in\")"
+  }
+  metadata {
+    id: 1
+    name: "ingress_port"
+    bitwidth: 9
+  }
+  metadata {
+    id: 2
+    name: "_pad"
+    bitwidth: 7
+  }
+}
+controller_packet_metadata {
+  preamble {
+    id: 2868916615
+    name: "packet_out"
+    annotations: "@not_extracted_in_egress()"
+    annotations: "@controller_header(\"packet_out\")"
+  }
+  metadata {
+    id: 1
+    name: "egress_port"
+    bitwidth: 9
+  }
+  metadata {
+    id: 2
+    name: "_pad"
+    bitwidth: 7
+  }
+}
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
new file mode 100644
index 0000000..45e1fb3
--- /dev/null
+++ 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/montara/context.json b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/montara/context.json
new file mode 100644
index 0000000..076dceb
--- /dev/null
+++ b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/montara/context.json
@@ -0,0 +1,62330 @@
+{
+  "build_date": "02/15/18 04:16:53",
+  "compiler_version": "6.0.0-alpha.4",
+  "program_name": "main",
+  "learn_quanta": [],
+  "dynamic_hash_calculations": [],
+  "parser": { "ingress": [], "egress": [] },
+  "phv_allocation": [
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "gtpu_ipv4.src_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": 1,
+          "records": [
+            {
+              "position_offset": 132,
+              "field_name": "ipv4.src_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": 2,
+          "records": [
+            {
+              "position_offset": 155,
+              "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": 60,
+              "field_name": "gtpu_ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "ipv4.dst_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": 5,
+          "records": [
+            {
+              "position_offset": 159,
+              "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": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 7,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 8,
+          "records": [
+            {
+              "position_offset": 163,
+              "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": 9,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 70,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 139,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 130,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 67,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 145,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 142,
+              "field_name": "mpls.bos",
+              "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": 71,
+          "records": [
+            {
+              "position_offset": 78,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 73,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 74,
+          "records": [
+            {
+              "position_offset": 71,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 75,
+          "records": [
+            {
+              "position_offset": 131,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 76,
+          "records": [
+            {
+              "position_offset": 146,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 77,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "spgw.do_spgw",
+              "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": 78,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 90,
+              "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": 167,
+              "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": 151,
+              "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": 79,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 113,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 115,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 149,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 212,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 208,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 214,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 204,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 109,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 126,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 153,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 141,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 142,
+          "records": [
+            {
+              "position_offset": 21,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 143,
+          "records": [
+            {
+              "position_offset": 210,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 160,
+          "records": [
+            {
+              "position_offset": 68,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 161,
+          "records": [
+            {
+              "position_offset": 128,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 162,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 163,
+          "records": [
+            {
+              "position_offset": 200,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 164,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 165,
+          "records": [
+            {
+              "position_offset": 202,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 166,
+          "records": [
+            {
+              "position_offset": 82,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 167,
+          "records": [
+            {
+              "position_offset": 198,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 168,
+          "records": [
+            {
+              "position_offset": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 169,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 170,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 171,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 172,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 3,
+                  "header_name": "arp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 13,
+                  "header_name": "ethernet",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 42,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 57,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 80,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 91,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 117,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 196,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 173,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 140,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 147,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 168,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 206,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 186,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 170,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 52,
+              "field_name": "gtpu.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": 288,
+          "records": [
+            {
+              "position_offset": 56,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 49,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 51,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 44,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu.npdu_flag",
+              "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": 289,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 5,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 10,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 190,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 184,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 97,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 11,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 192,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 194,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 174,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 16,
+          "records": [
+            {
+              "position_offset": 135,
+              "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": 17,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "gtpu.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": 18,
+          "records": [
+            {
+              "position_offset": 131,
+              "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": 19,
+          "records": [
+            {
+              "position_offset": 54,
+              "field_name": "gtpu_ipv4.src_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": 20,
+          "records": [
+            {
+              "position_offset": 127,
+              "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": 21,
+          "records": [
+            {
+              "position_offset": 42,
+              "field_name": "gtpu_ipv4.dst_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": 80,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 32,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 34,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "gtpu.npdu_flag",
+              "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": 81,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 82,
+          "records": [
+            {
+              "position_offset": 61,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 52,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 83,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 84,
+          "records": [
+            {
+              "position_offset": 60,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 85,
+          "records": [
+            {
+              "position_offset": 53,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 86,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
+              "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": 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,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 40,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 62,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 71,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 89,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 90,
+                  "header_name": "ipv4",
+                  "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": 112,
+                  "header_name": "mpls",
+                  "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": 118,
+                  "header_name": "packet_in",
+                  "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": 139,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 166,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 175,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 121,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 119,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 147,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 148,
+          "records": [
+            {
+              "position_offset": 67,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 149,
+          "records": [
+            {
+              "position_offset": 125,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 150,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 151,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 152,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 153,
+          "records": [
+            {
+              "position_offset": 50,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 154,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 155,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 262,
+          "records": [
+            {
+              "position_offset": 104,
+              "field_name": "ipv4.src_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": 263,
+          "records": [
+            {
+              "position_offset": 92,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 156,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 140,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 102,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 75,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 91,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 295,
+          "records": [
+            {
+              "position_offset": 74,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 116,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 113,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 110,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 160,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 148,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 154,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 146,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 76,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 98,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 100,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 150,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 164,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 144,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 347,
+          "records": [
+            {
+              "position_offset": 162,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 348,
+          "records": [
+            {
+              "position_offset": 169,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 349,
+          "records": [
+            {
+              "position_offset": 171,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 350,
+          "records": [
+            {
+              "position_offset": 167,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 0
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "gtpu_ipv4.src_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": 1,
+          "records": [
+            {
+              "position_offset": 132,
+              "field_name": "ipv4.src_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": 2,
+          "records": [
+            {
+              "position_offset": 155,
+              "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": 60,
+              "field_name": "gtpu_ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "ipv4.dst_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": 5,
+          "records": [
+            {
+              "position_offset": 159,
+              "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": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 7,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 8,
+          "records": [
+            {
+              "position_offset": 163,
+              "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": 9,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 70,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 139,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 130,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 67,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 145,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 142,
+              "field_name": "mpls.bos",
+              "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": 71,
+          "records": [
+            {
+              "position_offset": 78,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 73,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 74,
+          "records": [
+            {
+              "position_offset": 71,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 75,
+          "records": [
+            {
+              "position_offset": 131,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 76,
+          "records": [
+            {
+              "position_offset": 146,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 77,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "spgw.do_spgw",
+              "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": 78,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 90,
+              "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": 167,
+              "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": 151,
+              "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": 79,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 113,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 115,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 149,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 212,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 208,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 214,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 204,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 109,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 126,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 153,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 141,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 142,
+          "records": [
+            {
+              "position_offset": 21,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 143,
+          "records": [
+            {
+              "position_offset": 210,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 160,
+          "records": [
+            {
+              "position_offset": 68,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 161,
+          "records": [
+            {
+              "position_offset": 128,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 162,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 163,
+          "records": [
+            {
+              "position_offset": 200,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 164,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 165,
+          "records": [
+            {
+              "position_offset": 202,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 166,
+          "records": [
+            {
+              "position_offset": 82,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 167,
+          "records": [
+            {
+              "position_offset": 198,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 168,
+          "records": [
+            {
+              "position_offset": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 169,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 170,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 171,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 172,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 3,
+                  "header_name": "arp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 13,
+                  "header_name": "ethernet",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 42,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 57,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 80,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 91,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 117,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 196,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 173,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 140,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 147,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 168,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 206,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 186,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 170,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 52,
+              "field_name": "gtpu.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": 288,
+          "records": [
+            {
+              "position_offset": 56,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 49,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 51,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 44,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu.npdu_flag",
+              "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": 289,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 5,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 10,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 190,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 184,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 97,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 11,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 192,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 194,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 174,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 16,
+          "records": [
+            {
+              "position_offset": 135,
+              "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": 17,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "gtpu.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": 18,
+          "records": [
+            {
+              "position_offset": 131,
+              "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": 19,
+          "records": [
+            {
+              "position_offset": 54,
+              "field_name": "gtpu_ipv4.src_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": 20,
+          "records": [
+            {
+              "position_offset": 127,
+              "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": 21,
+          "records": [
+            {
+              "position_offset": 42,
+              "field_name": "gtpu_ipv4.dst_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": 80,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 32,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 34,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "gtpu.npdu_flag",
+              "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": 81,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 82,
+          "records": [
+            {
+              "position_offset": 61,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 52,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 83,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 84,
+          "records": [
+            {
+              "position_offset": 60,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 85,
+          "records": [
+            {
+              "position_offset": 53,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 86,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
+              "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": 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,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 40,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 62,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 71,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 89,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 90,
+                  "header_name": "ipv4",
+                  "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": 112,
+                  "header_name": "mpls",
+                  "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": 118,
+                  "header_name": "packet_in",
+                  "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": 139,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 166,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 175,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 121,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 119,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 147,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 148,
+          "records": [
+            {
+              "position_offset": 67,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 149,
+          "records": [
+            {
+              "position_offset": 125,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 150,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 151,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 152,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 153,
+          "records": [
+            {
+              "position_offset": 50,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 154,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 155,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 262,
+          "records": [
+            {
+              "position_offset": 104,
+              "field_name": "ipv4.src_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": 263,
+          "records": [
+            {
+              "position_offset": 92,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 156,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 140,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 102,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 75,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 91,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 295,
+          "records": [
+            {
+              "position_offset": 74,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 116,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 113,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 110,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 160,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 148,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 154,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 146,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 76,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 98,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 100,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 150,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 164,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 144,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 347,
+          "records": [
+            {
+              "position_offset": 162,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 348,
+          "records": [
+            {
+              "position_offset": 169,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 349,
+          "records": [
+            {
+              "position_offset": 171,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 350,
+          "records": [
+            {
+              "position_offset": 167,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 1
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "gtpu_ipv4.src_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": 1,
+          "records": [
+            {
+              "position_offset": 132,
+              "field_name": "ipv4.src_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": 2,
+          "records": [
+            {
+              "position_offset": 155,
+              "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": 60,
+              "field_name": "gtpu_ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "ipv4.dst_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": 5,
+          "records": [
+            {
+              "position_offset": 159,
+              "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": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 7,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 8,
+          "records": [
+            {
+              "position_offset": 163,
+              "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": 9,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 70,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 139,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 130,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 67,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 145,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 142,
+              "field_name": "mpls.bos",
+              "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": 71,
+          "records": [
+            {
+              "position_offset": 78,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 73,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 74,
+          "records": [
+            {
+              "position_offset": 71,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 75,
+          "records": [
+            {
+              "position_offset": 131,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 76,
+          "records": [
+            {
+              "position_offset": 146,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 77,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "spgw.do_spgw",
+              "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": 78,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 90,
+              "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": 167,
+              "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": 151,
+              "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": 79,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 113,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 115,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 149,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 212,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 208,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 214,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 204,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 109,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 126,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 153,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 141,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 142,
+          "records": [
+            {
+              "position_offset": 21,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 143,
+          "records": [
+            {
+              "position_offset": 210,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 160,
+          "records": [
+            {
+              "position_offset": 68,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 161,
+          "records": [
+            {
+              "position_offset": 128,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 162,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 163,
+          "records": [
+            {
+              "position_offset": 200,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 164,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 165,
+          "records": [
+            {
+              "position_offset": 202,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 166,
+          "records": [
+            {
+              "position_offset": 82,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 167,
+          "records": [
+            {
+              "position_offset": 198,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 168,
+          "records": [
+            {
+              "position_offset": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 169,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 170,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 171,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 172,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 3,
+                  "header_name": "arp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 13,
+                  "header_name": "ethernet",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 42,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 57,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 80,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 91,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 117,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 196,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 173,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 140,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 147,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 168,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 206,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 186,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 170,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 52,
+              "field_name": "gtpu.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": 288,
+          "records": [
+            {
+              "position_offset": 56,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 49,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 51,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 44,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu.npdu_flag",
+              "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": 289,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 5,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 10,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 190,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 184,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 97,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 11,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 192,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 194,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 174,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 16,
+          "records": [
+            {
+              "position_offset": 135,
+              "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": 17,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "gtpu.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": 18,
+          "records": [
+            {
+              "position_offset": 131,
+              "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": 19,
+          "records": [
+            {
+              "position_offset": 54,
+              "field_name": "gtpu_ipv4.src_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": 20,
+          "records": [
+            {
+              "position_offset": 127,
+              "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": 21,
+          "records": [
+            {
+              "position_offset": 42,
+              "field_name": "gtpu_ipv4.dst_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": 80,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 32,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 34,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "gtpu.npdu_flag",
+              "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": 81,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 82,
+          "records": [
+            {
+              "position_offset": 61,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 52,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 83,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 84,
+          "records": [
+            {
+              "position_offset": 60,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 85,
+          "records": [
+            {
+              "position_offset": 53,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 86,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
+              "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": 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,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 40,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 62,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 71,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 89,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 90,
+                  "header_name": "ipv4",
+                  "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": 112,
+                  "header_name": "mpls",
+                  "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": 118,
+                  "header_name": "packet_in",
+                  "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": 139,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 166,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 175,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 121,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 119,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 147,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 148,
+          "records": [
+            {
+              "position_offset": 67,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 149,
+          "records": [
+            {
+              "position_offset": 125,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 150,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 151,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 152,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 153,
+          "records": [
+            {
+              "position_offset": 50,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 154,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 155,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 262,
+          "records": [
+            {
+              "position_offset": 104,
+              "field_name": "ipv4.src_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": 263,
+          "records": [
+            {
+              "position_offset": 92,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 156,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 140,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 102,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 75,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 91,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 295,
+          "records": [
+            {
+              "position_offset": 74,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 116,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 113,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 110,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 160,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 148,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 154,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 146,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 76,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 98,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 100,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 150,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 164,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 144,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 347,
+          "records": [
+            {
+              "position_offset": 162,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 348,
+          "records": [
+            {
+              "position_offset": 169,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 349,
+          "records": [
+            {
+              "position_offset": 171,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 350,
+          "records": [
+            {
+              "position_offset": 167,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 2
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "gtpu_ipv4.src_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": 1,
+          "records": [
+            {
+              "position_offset": 132,
+              "field_name": "ipv4.src_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": 2,
+          "records": [
+            {
+              "position_offset": 155,
+              "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": 60,
+              "field_name": "gtpu_ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "ipv4.dst_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": 5,
+          "records": [
+            {
+              "position_offset": 159,
+              "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": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 7,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 8,
+          "records": [
+            {
+              "position_offset": 163,
+              "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": 9,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 70,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 139,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 130,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 67,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 145,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 142,
+              "field_name": "mpls.bos",
+              "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": 71,
+          "records": [
+            {
+              "position_offset": 78,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 73,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 74,
+          "records": [
+            {
+              "position_offset": 71,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 75,
+          "records": [
+            {
+              "position_offset": 131,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 76,
+          "records": [
+            {
+              "position_offset": 146,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 77,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "spgw.do_spgw",
+              "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": 78,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 90,
+              "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": 167,
+              "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": 151,
+              "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": 79,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 113,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 115,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 149,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 212,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 208,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 214,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 204,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 109,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 126,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 153,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 141,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 142,
+          "records": [
+            {
+              "position_offset": 21,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 143,
+          "records": [
+            {
+              "position_offset": 210,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 160,
+          "records": [
+            {
+              "position_offset": 68,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 161,
+          "records": [
+            {
+              "position_offset": 128,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 162,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 163,
+          "records": [
+            {
+              "position_offset": 200,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 164,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 165,
+          "records": [
+            {
+              "position_offset": 202,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 166,
+          "records": [
+            {
+              "position_offset": 82,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 167,
+          "records": [
+            {
+              "position_offset": 198,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 168,
+          "records": [
+            {
+              "position_offset": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 169,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 170,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 171,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 172,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 3,
+                  "header_name": "arp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 13,
+                  "header_name": "ethernet",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 42,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 57,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 80,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 91,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 117,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 196,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 173,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 140,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 147,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 168,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 206,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 186,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 170,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 52,
+              "field_name": "gtpu.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": 288,
+          "records": [
+            {
+              "position_offset": 56,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 49,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 51,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 44,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu.npdu_flag",
+              "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": 289,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 5,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 10,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 190,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 184,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 97,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 11,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 192,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 194,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 174,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 16,
+          "records": [
+            {
+              "position_offset": 135,
+              "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": 17,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "gtpu.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": 18,
+          "records": [
+            {
+              "position_offset": 131,
+              "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": 19,
+          "records": [
+            {
+              "position_offset": 54,
+              "field_name": "gtpu_ipv4.src_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": 20,
+          "records": [
+            {
+              "position_offset": 127,
+              "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": 21,
+          "records": [
+            {
+              "position_offset": 42,
+              "field_name": "gtpu_ipv4.dst_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": 80,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 32,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 34,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "gtpu.npdu_flag",
+              "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": 81,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 82,
+          "records": [
+            {
+              "position_offset": 61,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 52,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 83,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 84,
+          "records": [
+            {
+              "position_offset": 60,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 85,
+          "records": [
+            {
+              "position_offset": 53,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 86,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
+              "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": 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,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 40,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 62,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 71,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 89,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 90,
+                  "header_name": "ipv4",
+                  "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": 112,
+                  "header_name": "mpls",
+                  "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": 118,
+                  "header_name": "packet_in",
+                  "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": 139,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 166,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 175,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 121,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 119,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 147,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 148,
+          "records": [
+            {
+              "position_offset": 67,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 149,
+          "records": [
+            {
+              "position_offset": 125,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 150,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 151,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 152,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 153,
+          "records": [
+            {
+              "position_offset": 50,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 154,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 155,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 262,
+          "records": [
+            {
+              "position_offset": 104,
+              "field_name": "ipv4.src_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": 263,
+          "records": [
+            {
+              "position_offset": 92,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 156,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 140,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 102,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 75,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 91,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 295,
+          "records": [
+            {
+              "position_offset": 74,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 116,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 113,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 110,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 160,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 148,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 154,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 146,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 76,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 98,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 100,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 150,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 164,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 144,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 347,
+          "records": [
+            {
+              "position_offset": 162,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 348,
+          "records": [
+            {
+              "position_offset": 169,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 349,
+          "records": [
+            {
+              "position_offset": 171,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 350,
+          "records": [
+            {
+              "position_offset": 167,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 3
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "gtpu_ipv4.src_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": 1,
+          "records": [
+            {
+              "position_offset": 132,
+              "field_name": "ipv4.src_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": 2,
+          "records": [
+            {
+              "position_offset": 155,
+              "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": 60,
+              "field_name": "gtpu_ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "ipv4.dst_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": 5,
+          "records": [
+            {
+              "position_offset": 159,
+              "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": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 7,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 8,
+          "records": [
+            {
+              "position_offset": 163,
+              "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": 9,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 70,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 139,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 130,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 67,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 145,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 142,
+              "field_name": "mpls.bos",
+              "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": 71,
+          "records": [
+            {
+              "position_offset": 78,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 73,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 74,
+          "records": [
+            {
+              "position_offset": 71,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 75,
+          "records": [
+            {
+              "position_offset": 131,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 76,
+          "records": [
+            {
+              "position_offset": 146,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 77,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "spgw.do_spgw",
+              "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": 78,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 90,
+              "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": 167,
+              "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": 151,
+              "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": 79,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 113,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 115,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 149,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 212,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 208,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 214,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 204,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 109,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 126,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 153,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 141,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 142,
+          "records": [
+            {
+              "position_offset": 21,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 143,
+          "records": [
+            {
+              "position_offset": 210,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 160,
+          "records": [
+            {
+              "position_offset": 68,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 161,
+          "records": [
+            {
+              "position_offset": 128,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 162,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 163,
+          "records": [
+            {
+              "position_offset": 200,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 164,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 165,
+          "records": [
+            {
+              "position_offset": 202,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 166,
+          "records": [
+            {
+              "position_offset": 82,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 167,
+          "records": [
+            {
+              "position_offset": 198,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 168,
+          "records": [
+            {
+              "position_offset": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 169,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 170,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 171,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 172,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 3,
+                  "header_name": "arp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 13,
+                  "header_name": "ethernet",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 42,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 57,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 80,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 91,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 117,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 196,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 173,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 140,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 147,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 168,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 206,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 186,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 170,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 52,
+              "field_name": "gtpu.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": 288,
+          "records": [
+            {
+              "position_offset": 56,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 49,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 51,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 44,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu.npdu_flag",
+              "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": 289,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 5,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 10,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 190,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 184,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 97,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 11,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 192,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 194,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 174,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 16,
+          "records": [
+            {
+              "position_offset": 135,
+              "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": 17,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "gtpu.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": 18,
+          "records": [
+            {
+              "position_offset": 131,
+              "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": 19,
+          "records": [
+            {
+              "position_offset": 54,
+              "field_name": "gtpu_ipv4.src_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": 20,
+          "records": [
+            {
+              "position_offset": 127,
+              "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": 21,
+          "records": [
+            {
+              "position_offset": 42,
+              "field_name": "gtpu_ipv4.dst_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": 80,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 32,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 34,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "gtpu.npdu_flag",
+              "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": 81,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 82,
+          "records": [
+            {
+              "position_offset": 61,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 52,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 83,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 84,
+          "records": [
+            {
+              "position_offset": 60,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 85,
+          "records": [
+            {
+              "position_offset": 53,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 86,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
+              "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": 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,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 40,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 62,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 71,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 89,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 90,
+                  "header_name": "ipv4",
+                  "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": 112,
+                  "header_name": "mpls",
+                  "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": 118,
+                  "header_name": "packet_in",
+                  "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": 139,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 166,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 175,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 121,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 119,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 147,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 148,
+          "records": [
+            {
+              "position_offset": 67,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 149,
+          "records": [
+            {
+              "position_offset": 125,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 150,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 151,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 152,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 153,
+          "records": [
+            {
+              "position_offset": 50,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 154,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 155,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 262,
+          "records": [
+            {
+              "position_offset": 104,
+              "field_name": "ipv4.src_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": 263,
+          "records": [
+            {
+              "position_offset": 92,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 156,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 140,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 102,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 75,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 91,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 295,
+          "records": [
+            {
+              "position_offset": 74,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 116,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 113,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 110,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 160,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 148,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 154,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 146,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 76,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 98,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 100,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 150,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 164,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 144,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 347,
+          "records": [
+            {
+              "position_offset": 162,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 348,
+          "records": [
+            {
+              "position_offset": 169,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 349,
+          "records": [
+            {
+              "position_offset": 171,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 350,
+          "records": [
+            {
+              "position_offset": 167,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 4
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "gtpu_ipv4.src_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": 1,
+          "records": [
+            {
+              "position_offset": 132,
+              "field_name": "ipv4.src_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": 2,
+          "records": [
+            {
+              "position_offset": 155,
+              "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": 60,
+              "field_name": "gtpu_ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "ipv4.dst_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": 5,
+          "records": [
+            {
+              "position_offset": 159,
+              "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": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 7,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 8,
+          "records": [
+            {
+              "position_offset": 163,
+              "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": 9,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 70,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 139,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 130,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 67,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 145,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 142,
+              "field_name": "mpls.bos",
+              "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": 71,
+          "records": [
+            {
+              "position_offset": 78,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 73,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 74,
+          "records": [
+            {
+              "position_offset": 71,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 75,
+          "records": [
+            {
+              "position_offset": 131,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 76,
+          "records": [
+            {
+              "position_offset": 146,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 77,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "spgw.do_spgw",
+              "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": 78,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 90,
+              "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": 167,
+              "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": 151,
+              "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": 79,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 113,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 115,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 149,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 212,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 208,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 214,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 204,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 109,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 126,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 153,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 141,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 142,
+          "records": [
+            {
+              "position_offset": 21,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 143,
+          "records": [
+            {
+              "position_offset": 210,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 160,
+          "records": [
+            {
+              "position_offset": 68,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 161,
+          "records": [
+            {
+              "position_offset": 128,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 162,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 163,
+          "records": [
+            {
+              "position_offset": 200,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 164,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 165,
+          "records": [
+            {
+              "position_offset": 202,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 166,
+          "records": [
+            {
+              "position_offset": 82,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 167,
+          "records": [
+            {
+              "position_offset": 198,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 168,
+          "records": [
+            {
+              "position_offset": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 169,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 170,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 171,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 172,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 3,
+                  "header_name": "arp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 13,
+                  "header_name": "ethernet",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 42,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 57,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 80,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 91,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 117,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 196,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 173,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 140,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 147,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 168,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 206,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 186,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 170,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 52,
+              "field_name": "gtpu.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": 288,
+          "records": [
+            {
+              "position_offset": 56,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 49,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 51,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 44,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu.npdu_flag",
+              "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": 289,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 5,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 10,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 190,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 184,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 97,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 11,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 192,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 194,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 174,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 16,
+          "records": [
+            {
+              "position_offset": 135,
+              "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": 17,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "gtpu.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": 18,
+          "records": [
+            {
+              "position_offset": 131,
+              "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": 19,
+          "records": [
+            {
+              "position_offset": 54,
+              "field_name": "gtpu_ipv4.src_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": 20,
+          "records": [
+            {
+              "position_offset": 127,
+              "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": 21,
+          "records": [
+            {
+              "position_offset": 42,
+              "field_name": "gtpu_ipv4.dst_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": 80,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 32,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 34,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "gtpu.npdu_flag",
+              "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": 81,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 82,
+          "records": [
+            {
+              "position_offset": 61,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 52,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 83,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 84,
+          "records": [
+            {
+              "position_offset": 60,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 85,
+          "records": [
+            {
+              "position_offset": 53,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 86,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
+              "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": 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,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 40,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 62,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 71,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 89,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 90,
+                  "header_name": "ipv4",
+                  "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": 112,
+                  "header_name": "mpls",
+                  "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": 118,
+                  "header_name": "packet_in",
+                  "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": 139,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 166,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 175,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 121,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 119,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 147,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 148,
+          "records": [
+            {
+              "position_offset": 67,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 149,
+          "records": [
+            {
+              "position_offset": 125,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 150,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 151,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 152,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 153,
+          "records": [
+            {
+              "position_offset": 50,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 154,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 155,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 262,
+          "records": [
+            {
+              "position_offset": 104,
+              "field_name": "ipv4.src_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": 263,
+          "records": [
+            {
+              "position_offset": 92,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 156,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 140,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 102,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 75,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 91,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 295,
+          "records": [
+            {
+              "position_offset": 74,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 116,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 113,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 110,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 160,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 148,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 154,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 146,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 76,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 98,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 100,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 150,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 164,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 144,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 347,
+          "records": [
+            {
+              "position_offset": 162,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 348,
+          "records": [
+            {
+              "position_offset": 169,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 349,
+          "records": [
+            {
+              "position_offset": 171,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 350,
+          "records": [
+            {
+              "position_offset": 167,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 5
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "gtpu_ipv4.src_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": 1,
+          "records": [
+            {
+              "position_offset": 132,
+              "field_name": "ipv4.src_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": 2,
+          "records": [
+            {
+              "position_offset": 155,
+              "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": 60,
+              "field_name": "gtpu_ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "ipv4.dst_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": 5,
+          "records": [
+            {
+              "position_offset": 159,
+              "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": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 7,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 8,
+          "records": [
+            {
+              "position_offset": 163,
+              "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": 9,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 70,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 139,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 130,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 67,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 145,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 142,
+              "field_name": "mpls.bos",
+              "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": 71,
+          "records": [
+            {
+              "position_offset": 78,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 73,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 74,
+          "records": [
+            {
+              "position_offset": 71,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 75,
+          "records": [
+            {
+              "position_offset": 131,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 76,
+          "records": [
+            {
+              "position_offset": 146,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 77,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "spgw.do_spgw",
+              "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": 78,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 90,
+              "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": 167,
+              "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": 151,
+              "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": 79,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 113,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 115,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 149,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 212,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 208,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 214,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 204,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 109,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 126,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 153,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 141,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 142,
+          "records": [
+            {
+              "position_offset": 21,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 143,
+          "records": [
+            {
+              "position_offset": 210,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 160,
+          "records": [
+            {
+              "position_offset": 68,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 161,
+          "records": [
+            {
+              "position_offset": 128,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 162,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 163,
+          "records": [
+            {
+              "position_offset": 200,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 164,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 165,
+          "records": [
+            {
+              "position_offset": 202,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 166,
+          "records": [
+            {
+              "position_offset": 82,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 167,
+          "records": [
+            {
+              "position_offset": 198,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 168,
+          "records": [
+            {
+              "position_offset": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 169,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 170,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 171,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 172,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 3,
+                  "header_name": "arp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 13,
+                  "header_name": "ethernet",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 42,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 57,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 80,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 91,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 117,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 196,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 173,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 140,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 147,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 168,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 206,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 186,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 170,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 52,
+              "field_name": "gtpu.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": 288,
+          "records": [
+            {
+              "position_offset": 56,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 49,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 51,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 44,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu.npdu_flag",
+              "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": 289,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 5,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 10,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 190,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 184,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 97,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 11,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 192,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 194,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 174,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 16,
+          "records": [
+            {
+              "position_offset": 135,
+              "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": 17,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "gtpu.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": 18,
+          "records": [
+            {
+              "position_offset": 131,
+              "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": 19,
+          "records": [
+            {
+              "position_offset": 54,
+              "field_name": "gtpu_ipv4.src_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": 20,
+          "records": [
+            {
+              "position_offset": 127,
+              "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": 21,
+          "records": [
+            {
+              "position_offset": 42,
+              "field_name": "gtpu_ipv4.dst_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": 80,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 32,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 34,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "gtpu.npdu_flag",
+              "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": 81,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 82,
+          "records": [
+            {
+              "position_offset": 61,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 52,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 83,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 84,
+          "records": [
+            {
+              "position_offset": 60,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 85,
+          "records": [
+            {
+              "position_offset": 53,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 86,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
+              "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": 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,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 40,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 62,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 71,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 89,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 90,
+                  "header_name": "ipv4",
+                  "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": 112,
+                  "header_name": "mpls",
+                  "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": 118,
+                  "header_name": "packet_in",
+                  "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": 139,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 166,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 175,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 121,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 119,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 147,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 148,
+          "records": [
+            {
+              "position_offset": 67,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 149,
+          "records": [
+            {
+              "position_offset": 125,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 150,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 151,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 152,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 153,
+          "records": [
+            {
+              "position_offset": 50,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 154,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 155,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 262,
+          "records": [
+            {
+              "position_offset": 104,
+              "field_name": "ipv4.src_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": 263,
+          "records": [
+            {
+              "position_offset": 92,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 156,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 140,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 102,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 75,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 91,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 295,
+          "records": [
+            {
+              "position_offset": 74,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 116,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 113,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 110,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 160,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 148,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 154,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 146,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 76,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 98,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 100,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 150,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 164,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 144,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 347,
+          "records": [
+            {
+              "position_offset": 162,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 348,
+          "records": [
+            {
+              "position_offset": 169,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 349,
+          "records": [
+            {
+              "position_offset": 171,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 350,
+          "records": [
+            {
+              "position_offset": 167,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 6
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "gtpu_ipv4.src_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": 1,
+          "records": [
+            {
+              "position_offset": 132,
+              "field_name": "ipv4.src_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": 2,
+          "records": [
+            {
+              "position_offset": 155,
+              "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": 60,
+              "field_name": "gtpu_ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "ipv4.dst_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": 5,
+          "records": [
+            {
+              "position_offset": 159,
+              "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": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 7,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 8,
+          "records": [
+            {
+              "position_offset": 163,
+              "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": 9,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 70,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 139,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 130,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 67,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 145,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 142,
+              "field_name": "mpls.bos",
+              "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": 71,
+          "records": [
+            {
+              "position_offset": 78,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 73,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 74,
+          "records": [
+            {
+              "position_offset": 71,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 75,
+          "records": [
+            {
+              "position_offset": 131,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 76,
+          "records": [
+            {
+              "position_offset": 146,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 77,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "spgw.do_spgw",
+              "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": 78,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 90,
+              "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": 167,
+              "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": 151,
+              "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": 79,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 113,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 115,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 149,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 212,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 208,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 214,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 204,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 109,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 126,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 153,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 141,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 142,
+          "records": [
+            {
+              "position_offset": 21,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 143,
+          "records": [
+            {
+              "position_offset": 210,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 160,
+          "records": [
+            {
+              "position_offset": 68,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 161,
+          "records": [
+            {
+              "position_offset": 128,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 162,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 163,
+          "records": [
+            {
+              "position_offset": 200,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 164,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 165,
+          "records": [
+            {
+              "position_offset": 202,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 166,
+          "records": [
+            {
+              "position_offset": 82,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 167,
+          "records": [
+            {
+              "position_offset": 198,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 168,
+          "records": [
+            {
+              "position_offset": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 169,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 170,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 171,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 172,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 3,
+                  "header_name": "arp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 13,
+                  "header_name": "ethernet",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 42,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 57,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 80,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 91,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 117,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 196,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 173,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 140,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 147,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 168,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 206,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 186,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 170,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 52,
+              "field_name": "gtpu.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": 288,
+          "records": [
+            {
+              "position_offset": 56,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 49,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 51,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 44,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu.npdu_flag",
+              "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": 289,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 5,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 10,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 190,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 184,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 97,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 11,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 192,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 194,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 174,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 16,
+          "records": [
+            {
+              "position_offset": 135,
+              "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": 17,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "gtpu.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": 18,
+          "records": [
+            {
+              "position_offset": 131,
+              "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": 19,
+          "records": [
+            {
+              "position_offset": 54,
+              "field_name": "gtpu_ipv4.src_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": 20,
+          "records": [
+            {
+              "position_offset": 127,
+              "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": 21,
+          "records": [
+            {
+              "position_offset": 42,
+              "field_name": "gtpu_ipv4.dst_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": 80,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 32,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 34,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "gtpu.npdu_flag",
+              "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": 81,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 82,
+          "records": [
+            {
+              "position_offset": 61,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 52,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 83,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 84,
+          "records": [
+            {
+              "position_offset": 60,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 85,
+          "records": [
+            {
+              "position_offset": 53,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 86,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
+              "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": 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,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 40,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 62,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 71,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 89,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 90,
+                  "header_name": "ipv4",
+                  "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": 112,
+                  "header_name": "mpls",
+                  "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": 118,
+                  "header_name": "packet_in",
+                  "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": 139,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 166,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 175,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 121,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 119,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 147,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 148,
+          "records": [
+            {
+              "position_offset": 67,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 149,
+          "records": [
+            {
+              "position_offset": 125,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 150,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 151,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 152,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 153,
+          "records": [
+            {
+              "position_offset": 50,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 154,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 155,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 262,
+          "records": [
+            {
+              "position_offset": 104,
+              "field_name": "ipv4.src_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": 263,
+          "records": [
+            {
+              "position_offset": 92,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 156,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 140,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 102,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 75,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 91,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 295,
+          "records": [
+            {
+              "position_offset": 74,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 116,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 113,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 110,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 160,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 148,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 154,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 146,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 76,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 98,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 100,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 150,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 164,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 144,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 347,
+          "records": [
+            {
+              "position_offset": 162,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 348,
+          "records": [
+            {
+              "position_offset": 169,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 349,
+          "records": [
+            {
+              "position_offset": 171,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 350,
+          "records": [
+            {
+              "position_offset": 167,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 7
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "gtpu_ipv4.src_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": 1,
+          "records": [
+            {
+              "position_offset": 132,
+              "field_name": "ipv4.src_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": 2,
+          "records": [
+            {
+              "position_offset": 155,
+              "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": 60,
+              "field_name": "gtpu_ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "ipv4.dst_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": 5,
+          "records": [
+            {
+              "position_offset": 159,
+              "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": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 7,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 8,
+          "records": [
+            {
+              "position_offset": 163,
+              "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": 9,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 70,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 139,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 130,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 67,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 145,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 142,
+              "field_name": "mpls.bos",
+              "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": 71,
+          "records": [
+            {
+              "position_offset": 78,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 73,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 74,
+          "records": [
+            {
+              "position_offset": 71,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 75,
+          "records": [
+            {
+              "position_offset": 131,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 76,
+          "records": [
+            {
+              "position_offset": 146,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 77,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "spgw.do_spgw",
+              "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": 78,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 90,
+              "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": 167,
+              "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": 151,
+              "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": 79,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 113,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 115,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 149,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 212,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 208,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 214,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 204,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 109,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 126,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 153,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 141,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 142,
+          "records": [
+            {
+              "position_offset": 21,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 143,
+          "records": [
+            {
+              "position_offset": 210,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 160,
+          "records": [
+            {
+              "position_offset": 68,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 161,
+          "records": [
+            {
+              "position_offset": 128,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 162,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 163,
+          "records": [
+            {
+              "position_offset": 200,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 164,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 165,
+          "records": [
+            {
+              "position_offset": 202,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 166,
+          "records": [
+            {
+              "position_offset": 82,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 167,
+          "records": [
+            {
+              "position_offset": 198,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 168,
+          "records": [
+            {
+              "position_offset": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 169,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 170,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 171,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 172,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 3,
+                  "header_name": "arp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 13,
+                  "header_name": "ethernet",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 42,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 57,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 80,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 91,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 117,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 196,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 173,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 140,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 147,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 168,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 206,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 186,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 170,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 52,
+              "field_name": "gtpu.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": 288,
+          "records": [
+            {
+              "position_offset": 56,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 49,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 51,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 44,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu.npdu_flag",
+              "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": 289,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 5,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 10,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 190,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 184,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 97,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 11,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 192,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 194,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 174,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 16,
+          "records": [
+            {
+              "position_offset": 135,
+              "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": 17,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "gtpu.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": 18,
+          "records": [
+            {
+              "position_offset": 131,
+              "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": 19,
+          "records": [
+            {
+              "position_offset": 54,
+              "field_name": "gtpu_ipv4.src_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": 20,
+          "records": [
+            {
+              "position_offset": 127,
+              "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": 21,
+          "records": [
+            {
+              "position_offset": 42,
+              "field_name": "gtpu_ipv4.dst_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": 80,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 32,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 34,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "gtpu.npdu_flag",
+              "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": 81,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 82,
+          "records": [
+            {
+              "position_offset": 61,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 52,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 83,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 84,
+          "records": [
+            {
+              "position_offset": 60,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 85,
+          "records": [
+            {
+              "position_offset": 53,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 86,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
+              "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": 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,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 40,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 62,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 71,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 89,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 90,
+                  "header_name": "ipv4",
+                  "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": 112,
+                  "header_name": "mpls",
+                  "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": 118,
+                  "header_name": "packet_in",
+                  "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": 139,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 166,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 175,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 121,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 119,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 147,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 148,
+          "records": [
+            {
+              "position_offset": 67,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 149,
+          "records": [
+            {
+              "position_offset": 125,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 150,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 151,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 152,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 153,
+          "records": [
+            {
+              "position_offset": 50,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 154,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 155,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 262,
+          "records": [
+            {
+              "position_offset": 104,
+              "field_name": "ipv4.src_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": 263,
+          "records": [
+            {
+              "position_offset": 92,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 156,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 140,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 102,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 75,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 91,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 295,
+          "records": [
+            {
+              "position_offset": 74,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 116,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 113,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 110,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 160,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 148,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 154,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 146,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 76,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 98,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 100,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 150,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 164,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 144,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 347,
+          "records": [
+            {
+              "position_offset": 162,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 348,
+          "records": [
+            {
+              "position_offset": 169,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 349,
+          "records": [
+            {
+              "position_offset": 171,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 350,
+          "records": [
+            {
+              "position_offset": 167,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 8
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "gtpu_ipv4.src_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": 1,
+          "records": [
+            {
+              "position_offset": 132,
+              "field_name": "ipv4.src_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": 2,
+          "records": [
+            {
+              "position_offset": 155,
+              "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": 60,
+              "field_name": "gtpu_ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "ipv4.dst_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": 5,
+          "records": [
+            {
+              "position_offset": 159,
+              "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": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 7,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 8,
+          "records": [
+            {
+              "position_offset": 163,
+              "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": 9,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 70,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 139,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 130,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 67,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 145,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 142,
+              "field_name": "mpls.bos",
+              "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": 71,
+          "records": [
+            {
+              "position_offset": 78,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 73,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 74,
+          "records": [
+            {
+              "position_offset": 71,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 75,
+          "records": [
+            {
+              "position_offset": 131,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 76,
+          "records": [
+            {
+              "position_offset": 146,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 77,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "spgw.do_spgw",
+              "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": 78,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 90,
+              "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": 167,
+              "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": 151,
+              "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": 79,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 113,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 115,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 149,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 212,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 208,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 214,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 204,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 109,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 126,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 153,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 141,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 142,
+          "records": [
+            {
+              "position_offset": 21,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 143,
+          "records": [
+            {
+              "position_offset": 210,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 160,
+          "records": [
+            {
+              "position_offset": 68,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 161,
+          "records": [
+            {
+              "position_offset": 128,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 162,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 163,
+          "records": [
+            {
+              "position_offset": 200,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 164,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 165,
+          "records": [
+            {
+              "position_offset": 202,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 166,
+          "records": [
+            {
+              "position_offset": 82,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 167,
+          "records": [
+            {
+              "position_offset": 198,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 168,
+          "records": [
+            {
+              "position_offset": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 169,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 170,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 171,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 172,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 3,
+                  "header_name": "arp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 13,
+                  "header_name": "ethernet",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 42,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 57,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 80,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 91,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 117,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 196,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 173,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 140,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 147,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 168,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 206,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 186,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 170,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 52,
+              "field_name": "gtpu.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": 288,
+          "records": [
+            {
+              "position_offset": 56,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 49,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 51,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 44,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu.npdu_flag",
+              "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": 289,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 5,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 10,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 190,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 184,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 97,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 11,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 192,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 194,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 174,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 16,
+          "records": [
+            {
+              "position_offset": 135,
+              "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": 17,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "gtpu.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": 18,
+          "records": [
+            {
+              "position_offset": 131,
+              "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": 19,
+          "records": [
+            {
+              "position_offset": 54,
+              "field_name": "gtpu_ipv4.src_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": 20,
+          "records": [
+            {
+              "position_offset": 127,
+              "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": 21,
+          "records": [
+            {
+              "position_offset": 42,
+              "field_name": "gtpu_ipv4.dst_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": 80,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 32,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 34,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "gtpu.npdu_flag",
+              "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": 81,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 82,
+          "records": [
+            {
+              "position_offset": 61,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 52,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 83,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 84,
+          "records": [
+            {
+              "position_offset": 60,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 85,
+          "records": [
+            {
+              "position_offset": 53,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 86,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
+              "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": 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,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 40,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 62,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 71,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 89,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 90,
+                  "header_name": "ipv4",
+                  "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": 112,
+                  "header_name": "mpls",
+                  "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": 118,
+                  "header_name": "packet_in",
+                  "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": 139,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 166,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 175,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 121,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 119,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 147,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 148,
+          "records": [
+            {
+              "position_offset": 67,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 149,
+          "records": [
+            {
+              "position_offset": 125,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 150,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 151,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 152,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 153,
+          "records": [
+            {
+              "position_offset": 50,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 154,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 155,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 262,
+          "records": [
+            {
+              "position_offset": 104,
+              "field_name": "ipv4.src_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": 263,
+          "records": [
+            {
+              "position_offset": 92,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 156,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 140,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 102,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 75,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 91,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 295,
+          "records": [
+            {
+              "position_offset": 74,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 116,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 113,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 110,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 160,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 148,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 154,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 146,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 76,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 98,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 100,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 150,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 164,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 144,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 347,
+          "records": [
+            {
+              "position_offset": 162,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 348,
+          "records": [
+            {
+              "position_offset": 169,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 349,
+          "records": [
+            {
+              "position_offset": 171,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 350,
+          "records": [
+            {
+              "position_offset": 167,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 9
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "gtpu_ipv4.src_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": 1,
+          "records": [
+            {
+              "position_offset": 132,
+              "field_name": "ipv4.src_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": 2,
+          "records": [
+            {
+              "position_offset": 155,
+              "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": 60,
+              "field_name": "gtpu_ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "ipv4.dst_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": 5,
+          "records": [
+            {
+              "position_offset": 159,
+              "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": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 7,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 8,
+          "records": [
+            {
+              "position_offset": 163,
+              "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": 9,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 70,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 139,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 130,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 67,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 145,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 142,
+              "field_name": "mpls.bos",
+              "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": 71,
+          "records": [
+            {
+              "position_offset": 78,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 73,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 74,
+          "records": [
+            {
+              "position_offset": 71,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 75,
+          "records": [
+            {
+              "position_offset": 131,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 76,
+          "records": [
+            {
+              "position_offset": 146,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 77,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "spgw.do_spgw",
+              "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": 78,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 90,
+              "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": 167,
+              "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": 151,
+              "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": 79,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 113,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 115,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 149,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 212,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 208,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 214,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 204,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 109,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 126,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 153,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 141,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 142,
+          "records": [
+            {
+              "position_offset": 21,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 143,
+          "records": [
+            {
+              "position_offset": 210,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 160,
+          "records": [
+            {
+              "position_offset": 68,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 161,
+          "records": [
+            {
+              "position_offset": 128,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 162,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 163,
+          "records": [
+            {
+              "position_offset": 200,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 164,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 165,
+          "records": [
+            {
+              "position_offset": 202,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 166,
+          "records": [
+            {
+              "position_offset": 82,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 167,
+          "records": [
+            {
+              "position_offset": 198,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 168,
+          "records": [
+            {
+              "position_offset": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 169,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 170,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 171,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 172,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 3,
+                  "header_name": "arp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 13,
+                  "header_name": "ethernet",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 42,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 57,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 80,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 91,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 117,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 196,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 173,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 140,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 147,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 168,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 206,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 186,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 170,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 52,
+              "field_name": "gtpu.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": 288,
+          "records": [
+            {
+              "position_offset": 56,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 49,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 51,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 44,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu.npdu_flag",
+              "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": 289,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 5,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 10,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 190,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 184,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 97,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 11,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 192,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 194,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 174,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 16,
+          "records": [
+            {
+              "position_offset": 135,
+              "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": 17,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "gtpu.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": 18,
+          "records": [
+            {
+              "position_offset": 131,
+              "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": 19,
+          "records": [
+            {
+              "position_offset": 54,
+              "field_name": "gtpu_ipv4.src_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": 20,
+          "records": [
+            {
+              "position_offset": 127,
+              "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": 21,
+          "records": [
+            {
+              "position_offset": 42,
+              "field_name": "gtpu_ipv4.dst_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": 80,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 32,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 34,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "gtpu.npdu_flag",
+              "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": 81,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 82,
+          "records": [
+            {
+              "position_offset": 61,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 52,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 83,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 84,
+          "records": [
+            {
+              "position_offset": 60,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 85,
+          "records": [
+            {
+              "position_offset": 53,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 86,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
+              "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": 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,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 40,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 62,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 71,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 89,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 90,
+                  "header_name": "ipv4",
+                  "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": 112,
+                  "header_name": "mpls",
+                  "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": 118,
+                  "header_name": "packet_in",
+                  "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": 139,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 166,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 175,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 121,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 119,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 147,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 148,
+          "records": [
+            {
+              "position_offset": 67,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 149,
+          "records": [
+            {
+              "position_offset": 125,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 150,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 151,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 152,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 153,
+          "records": [
+            {
+              "position_offset": 50,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 154,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 155,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 262,
+          "records": [
+            {
+              "position_offset": 104,
+              "field_name": "ipv4.src_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": 263,
+          "records": [
+            {
+              "position_offset": 92,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 156,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 140,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 102,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 75,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 91,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 295,
+          "records": [
+            {
+              "position_offset": 74,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 116,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 113,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 110,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 160,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 148,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 154,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 146,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 76,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 98,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 100,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 150,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 164,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 144,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 347,
+          "records": [
+            {
+              "position_offset": 162,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 348,
+          "records": [
+            {
+              "position_offset": 169,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 349,
+          "records": [
+            {
+              "position_offset": 171,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 350,
+          "records": [
+            {
+              "position_offset": 167,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 10
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "gtpu_ipv4.src_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": 1,
+          "records": [
+            {
+              "position_offset": 132,
+              "field_name": "ipv4.src_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": 2,
+          "records": [
+            {
+              "position_offset": 155,
+              "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": 60,
+              "field_name": "gtpu_ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "ipv4.dst_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": 5,
+          "records": [
+            {
+              "position_offset": 159,
+              "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": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 7,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 8,
+          "records": [
+            {
+              "position_offset": 163,
+              "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": 9,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 70,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 139,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 130,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 67,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 145,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 142,
+              "field_name": "mpls.bos",
+              "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": 71,
+          "records": [
+            {
+              "position_offset": 78,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 73,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 74,
+          "records": [
+            {
+              "position_offset": 71,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 75,
+          "records": [
+            {
+              "position_offset": 131,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 76,
+          "records": [
+            {
+              "position_offset": 146,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 77,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "spgw.do_spgw",
+              "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": 78,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 90,
+              "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": 167,
+              "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": 151,
+              "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": 79,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 113,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 115,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 149,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 212,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 208,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 214,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 204,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 143,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 109,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 126,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 153,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 141,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 142,
+          "records": [
+            {
+              "position_offset": 21,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 143,
+          "records": [
+            {
+              "position_offset": 210,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 160,
+          "records": [
+            {
+              "position_offset": 68,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 161,
+          "records": [
+            {
+              "position_offset": 128,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 162,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 163,
+          "records": [
+            {
+              "position_offset": 200,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 164,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 165,
+          "records": [
+            {
+              "position_offset": 202,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 166,
+          "records": [
+            {
+              "position_offset": 82,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 167,
+          "records": [
+            {
+              "position_offset": 198,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 168,
+          "records": [
+            {
+              "position_offset": 15,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 169,
+          "records": [
+            {
+              "position_offset": 23,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 170,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 171,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 172,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 3,
+                  "header_name": "arp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 13,
+                  "header_name": "ethernet",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 42,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 57,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 80,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 91,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 117,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 196,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 173,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 140,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 147,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 168,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 15,
+              "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": 206,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 186,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 170,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 101,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 52,
+              "field_name": "gtpu.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": 288,
+          "records": [
+            {
+              "position_offset": 56,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 49,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 51,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 44,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu.npdu_flag",
+              "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": 289,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 5,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 10,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 190,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 184,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 97,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 11,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 192,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 194,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 174,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 16,
+          "records": [
+            {
+              "position_offset": 135,
+              "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": 17,
+          "records": [
+            {
+              "position_offset": 35,
+              "field_name": "gtpu.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": 18,
+          "records": [
+            {
+              "position_offset": 131,
+              "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": 19,
+          "records": [
+            {
+              "position_offset": 54,
+              "field_name": "gtpu_ipv4.src_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": 20,
+          "records": [
+            {
+              "position_offset": 127,
+              "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": 21,
+          "records": [
+            {
+              "position_offset": 42,
+              "field_name": "gtpu_ipv4.dst_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": 80,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "gtpu.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 32,
+              "field_name": "gtpu.pt",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 34,
+              "field_name": "gtpu.spare",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "gtpu.ex_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "gtpu.seq_flag",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "gtpu.npdu_flag",
+              "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": 81,
+          "records": [
+            {
+              "position_offset": 30,
+              "field_name": "gtpu.msgtype",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 82,
+          "records": [
+            {
+              "position_offset": 61,
+              "field_name": "gtpu_ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 52,
+              "field_name": "gtpu_ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 83,
+          "records": [
+            {
+              "position_offset": 41,
+              "field_name": "gtpu_ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 84,
+          "records": [
+            {
+              "position_offset": 60,
+              "field_name": "gtpu_ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 85,
+          "records": [
+            {
+              "position_offset": 53,
+              "field_name": "gtpu_ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 86,
+          "records": [
+            {
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
+              "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": 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,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "gtpu",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 40,
+                  "header_name": "gtpu_ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 62,
+                  "header_name": "gtpu_udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 71,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 89,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 90,
+                  "header_name": "ipv4",
+                  "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": 112,
+                  "header_name": "mpls",
+                  "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": 118,
+                  "header_name": "packet_in",
+                  "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": 139,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 4,
+                  "position_offset": 166,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 175,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "gtpu_udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 121,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 119,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 147,
+          "records": [
+            {
+              "position_offset": 88,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 148,
+          "records": [
+            {
+              "position_offset": 67,
+              "field_name": "gtpu_udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 149,
+          "records": [
+            {
+              "position_offset": 125,
+              "field_name": "spgw.ipv4_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 150,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "gtpu_ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 151,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "gtpu.msglen",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 152,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "gtpu_ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "gtpu_ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 153,
+          "records": [
+            {
+              "position_offset": 50,
+              "field_name": "gtpu_ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 154,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "gtpu_udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 155,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "gtpu_udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 262,
+          "records": [
+            {
+              "position_offset": 104,
+              "field_name": "ipv4.src_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": 263,
+          "records": [
+            {
+              "position_offset": 92,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 156,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 140,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 80,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 111,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 102,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 75,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 91,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 295,
+          "records": [
+            {
+              "position_offset": 74,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 116,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 113,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 110,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 180,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 176,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 182,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 160,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 114,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 148,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 154,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 152,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 146,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 76,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 96,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 98,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 178,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 100,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 150,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 164,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 144,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 347,
+          "records": [
+            {
+              "position_offset": 162,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 348,
+          "records": [
+            {
+              "position_offset": 169,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 349,
+          "records": [
+            {
+              "position_offset": 171,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 350,
+          "records": [
+            {
+              "position_offset": 167,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 11
+    }
+  ],
+  "tables": [
+    {
+      "direction": "ingress",
+      "handle": 16777217,
+      "name": "tbl_act",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 0,
+            "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": 0,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "result_physical_buses": [ 1 ],
+            "action_format": [
+              {
+                "action_name": "act_0",
+                "action_handle": 536870914,
+                "table_name": "tbl_act_15",
+                "next_table": 0,
+                "next_table_full": 16,
+                "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_0",
+          "handle": 536870914,
+          "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": "hasExited_0" },
+              "src": [
+                { "type": "immmediate", "name": "0" },
+                { "type": "phv", "name": "B14" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870914,
+      "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": "egress",
+      "handle": 16777218,
+      "name": "tbl_act_13",
+      "table_type": "match",
+      "size": 512,
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 0,
+            "size": 512,
+            "stage_table_type": "ternary_match",
+            "logical_table_id": 1,
+            "has_attached_gateway": false,
+            "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": 0,
+              "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": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 120,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 126,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 14,
+                      "fields": [
+                        {
+                          "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": 112,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 118,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 13,
+                      "fields": [
+                        {
+                          "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": 104,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 110,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 12,
+                      "fields": [
+                        {
+                          "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": 96,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 102,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 11,
+                      "fields": [
+                        {
+                          "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": 88,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 94,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 10,
+                      "fields": [
+                        {
+                          "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": 80,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 86,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 9,
+                      "fields": [
+                        {
+                          "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": 72,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 78,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 8,
+                      "fields": [
+                        {
+                          "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": 64,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 70,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 7,
+                      "fields": [
+                        {
+                          "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": 56,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 62,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 6,
+                      "fields": [
+                        {
+                          "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": 48,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 54,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 5,
+                      "fields": [
+                        {
+                          "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": 40,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 46,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 4,
+                      "fields": [
+                        {
+                          "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": 32,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 38,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 3,
+                      "fields": [
+                        {
+                          "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": 24,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 30,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 2,
+                      "fields": [
+                        {
+                          "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": 16,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 22,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "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": 8,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 14,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "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": 0,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "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": 6,
+                          "field_name": "--padding_6_7--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": { "memory_type": "sram", "memory_units_and_vpns": [] },
+              "action_format": [
+                {
+                  "action_name": "act_13",
+                  "action_handle": 536870915,
+                  "table_name": "tbl_act_27",
+                  "next_table": 0,
+                  "next_table_full": 2,
+                  "vliw_instruction": 0,
+                  "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
+                    }
+                  ]
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "act_13",
+          "handle": 536870915,
+          "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": "B24" },
+              "src": [
+                { "type": "immediate", "name": "$data0" },
+                { "type": "phv", "name": "B24" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870915,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": []
+    },
+    {
+      "direction": "egress",
+      "handle": 16777219,
+      "name": "tbl_act_12",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 0,
+            "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": [ 0 ],
+            "action_format": [
+              {
+                "action_name": "act_12",
+                "action_handle": 536870916,
+                "table_name": "tbl_spgw_egress_gtpu_encap_0",
+                "next_table": 0,
+                "next_table_full": 17,
+                "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_12",
+          "handle": 536870916,
+          "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": "packet_in.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B25" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "packet_in.ingress_port" },
+              "src": [
+                { "type": "phv", "name": "H19" },
+                { "type": "phv", "name": "H18" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870916,
+      "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": 16777220,
+      "name": "tbl_act_0",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 1,
+            "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": 0,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "result_physical_buses": [ 0 ],
+            "action_format": [
+              {
+                "action_name": "act",
+                "action_handle": 536870917,
+                "table_name": "tbl_act_16",
+                "next_table": 0,
+                "next_table_full": 32,
+                "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",
+          "handle": 536870917,
+          "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": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "phv", "name": "H2" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "hasExited_0" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B14" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870917,
+      "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": "egress",
+      "handle": 16777221,
+      "name": "tbl_spgw_egress_gtpu_encap",
+      "table_type": "match",
+      "size": 512,
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 1,
+            "size": 512,
+            "stage_table_type": "ternary_match",
+            "logical_table_id": 1,
+            "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": 255,
+            "result_physical_buses": [],
+            "ternary_indirection_stage_table": {
+              "stage_number": 1,
+              "stage_table_type": "ternary_indirection",
+              "size": 512,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 8,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "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": 112,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 8,
+                          "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": 7,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 121,
+                          "field_name": "--padding_9_15--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 96,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 8,
+                          "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": 7,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 105,
+                          "field_name": "--padding_9_15--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 80,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 8,
+                          "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": 7,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 89,
+                          "field_name": "--padding_9_15--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 64,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 8,
+                          "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": 7,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 73,
+                          "field_name": "--padding_9_15--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 48,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 8,
+                          "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": 7,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 57,
+                          "field_name": "--padding_9_15--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 32,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 8,
+                          "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": 7,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 41,
+                          "field_name": "--padding_9_15--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 16,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 8,
+                          "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": 7,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 25,
+                          "field_name": "--padding_9_15--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 8,
+                          "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": 7,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 9,
+                          "field_name": "--padding_9_15--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": { "memory_type": "sram", "memory_units_and_vpns": [] },
+              "action_format": [
+                {
+                  "action_name": "spgw_egress.gtpu_encap",
+                  "action_handle": 536870918,
+                  "table_name": "--END_OF_PIPELINE--",
+                  "next_table": 0,
+                  "next_table_full": 255,
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 64,
+                  "immediate_fields": [
+                    {
+                      "param_name": "constant_1",
+                      "param_type": "constant",
+                      "const_value": 1,
+                      "param_shift": 0,
+                      "dest_start": 5,
+                      "dest_width": 3
+                    },
+                    {
+                      "param_name": "constant_1",
+                      "param_type": "constant",
+                      "const_value": 1,
+                      "param_shift": 0,
+                      "dest_start": 4,
+                      "dest_width": 1
+                    },
+                    {
+                      "param_name": "constant_0",
+                      "param_type": "constant",
+                      "const_value": 0,
+                      "param_shift": 0,
+                      "dest_start": 3,
+                      "dest_width": 1
+                    },
+                    {
+                      "param_name": "constant_0",
+                      "param_type": "constant",
+                      "const_value": 0,
+                      "param_shift": 0,
+                      "dest_start": 2,
+                      "dest_width": 1
+                    },
+                    {
+                      "param_name": "constant_0",
+                      "param_type": "constant",
+                      "const_value": 0,
+                      "param_shift": 0,
+                      "dest_start": 1,
+                      "dest_width": 1
+                    },
+                    {
+                      "param_name": "constant_0",
+                      "param_type": "constant",
+                      "const_value": 0,
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 1
+                    }
+                  ]
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 33554433,
+          "name": "tbl_spgw_egress_gtpu_encap_0$action"
+        }
+      ],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "spgw_egress.gtpu_encap",
+          "handle": 536870918,
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.diffserv" },
+              "src": [ { "type": "immmediate", "name": "0" } ]
+            },
+            {
+              "name": "DirectAluPrimitive",
+              "operation": "add",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.total_len" },
+              "src": [
+                { "type": "action_param", "name": "$constant12" },
+                { "type": "phv", "name": "H21" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.identification" },
+              "src": [ { "immediate": "5395" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.protocol" },
+              "src": [ { "immediate": "17" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.dst_addr" },
+              "src": [ { "type": "phv", "name": "W20" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.src_addr" },
+              "src": [ { "type": "phv", "name": "W18" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_udp.src_port" },
+              "src": [ { "immediate": "2152" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_udp.dst_port" },
+              "src": [ { "immediate": "2152" } ]
+            },
+            {
+              "name": "DirectAluPrimitive",
+              "operation": "add",
+              "dest": { "type": "phv", "name": "gtpu_udp.len" },
+              "src": [
+                { "type": "action_param", "name": "$constant11" },
+                { "type": "phv", "name": "H21" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_udp.checksum" },
+              "src": [ { "type": "immmediate", "name": "0" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu.msgtype" },
+              "src": [ { "immediate": "255" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu.msglen" },
+              "src": [ { "type": "phv", "name": "H21" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu.teid" },
+              "src": [ { "type": "phv", "name": "W16" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B16" },
+              "src": [ { "type": "immediate", "name": "$data3" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B18" },
+              "src": [ { "type": "action_param", "name": "$data0" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B24" },
+              "src": [
+                { "type": "action_param", "name": "$data1" },
+                { "type": "phv", "name": "B24" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "H24" },
+              "src": [ { "type": "action_param", "name": "$data2" } ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870918,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": []
+    },
+    {
+      "direction": "egress",
+      "handle": 33554433,
+      "name": "tbl_spgw_egress_gtpu_encap_0$action",
+      "table_type": "action",
+      "size": 2048,
+      "stage_tables": [
+        {
+          "stage_number": 1,
+          "size": 2048,
+          "stage_table_type": "action_data",
+          "logical_table_id": 1,
+          "pack_format": [
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 1,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 4,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "constant",
+                      "const_tuples": [ { "dest_start": 0, "value": 4, "dest_width": 4 } ],
+                      "lsb_mem_word_offset": 68,
+                      "field_name": "$constant6"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 4,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "constant",
+                      "const_tuples": [ { "dest_start": 0, "value": 5, "dest_width": 4 } ],
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "$constant7"
+                    },
+                    {
+                      "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": 75,
+                      "field_name": "$constant10"
+                    },
+                    {
+                      "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": 76,
+                      "field_name": "$constant8"
+                    },
+                    {
+                      "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": 77,
+                      "field_name": "$constant9"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "constant",
+                      "const_tuples": [ { "dest_start": 0, "value": 16, "dest_width": 16 } ],
+                      "lsb_mem_word_offset": 80,
+                      "field_name": "$constant11"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "constant",
+                      "const_tuples": [ { "dest_start": 0, "value": 36, "dest_width": 16 } ],
+                      "lsb_mem_word_offset": 96,
+                      "field_name": "$constant12"
+                    },
+                    {
+                      "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": 125,
+                      "field_name": "$constant13"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 13,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "constant",
+                      "const_tuples": [ { "dest_start": 0, "value": 0, "dest_width": 13 } ],
+                      "lsb_mem_word_offset": 112,
+                      "field_name": "$constant14"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 3,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 72,
+                      "field_name": "--padding_8_10--"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 2,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 78,
+                      "field_name": "--padding_14_15--"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 4,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "constant",
+                      "const_tuples": [ { "dest_start": 0, "value": 4, "dest_width": 4 } ],
+                      "lsb_mem_word_offset": 4,
+                      "field_name": "$constant6"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 4,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "constant",
+                      "const_tuples": [ { "dest_start": 0, "value": 5, "dest_width": 4 } ],
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "$constant7"
+                    },
+                    {
+                      "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": 11,
+                      "field_name": "$constant10"
+                    },
+                    {
+                      "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": 12,
+                      "field_name": "$constant8"
+                    },
+                    {
+                      "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": 13,
+                      "field_name": "$constant9"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "constant",
+                      "const_tuples": [ { "dest_start": 0, "value": 16, "dest_width": 16 } ],
+                      "lsb_mem_word_offset": 16,
+                      "field_name": "$constant11"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "constant",
+                      "const_tuples": [ { "dest_start": 0, "value": 36, "dest_width": 16 } ],
+                      "lsb_mem_word_offset": 32,
+                      "field_name": "$constant12"
+                    },
+                    {
+                      "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": 61,
+                      "field_name": "$constant13"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 13,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "constant",
+                      "const_tuples": [ { "dest_start": 0, "value": 0, "dest_width": 13 } ],
+                      "lsb_mem_word_offset": 48,
+                      "field_name": "$constant14"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 3,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 8,
+                      "field_name": "--padding_8_10--"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 2,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 14,
+                      "field_name": "--padding_14_15--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870918
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [ { "memory_units": [ 90 ], "vpns": [ 0 ] } ],
+            "spare_bank_memory_unit": 90
+          }
+        }
+      ],
+      "actions": [
+        {
+          "name": "spgw_egress.gtpu_encap",
+          "handle": 536870918,
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.diffserv" },
+              "src": [ { "type": "immmediate", "name": "0" } ]
+            },
+            {
+              "name": "DirectAluPrimitive",
+              "operation": "add",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.total_len" },
+              "src": [
+                { "type": "action_param", "name": "$constant12" },
+                { "type": "phv", "name": "H21" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.identification" },
+              "src": [ { "immediate": "5395" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.protocol" },
+              "src": [ { "immediate": "17" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.dst_addr" },
+              "src": [ { "type": "phv", "name": "W20" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_ipv4.src_addr" },
+              "src": [ { "type": "phv", "name": "W18" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_udp.src_port" },
+              "src": [ { "immediate": "2152" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_udp.dst_port" },
+              "src": [ { "immediate": "2152" } ]
+            },
+            {
+              "name": "DirectAluPrimitive",
+              "operation": "add",
+              "dest": { "type": "phv", "name": "gtpu_udp.len" },
+              "src": [
+                { "type": "action_param", "name": "$constant11" },
+                { "type": "phv", "name": "H21" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu_udp.checksum" },
+              "src": [ { "type": "immmediate", "name": "0" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu.msgtype" },
+              "src": [ { "immediate": "255" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu.msglen" },
+              "src": [ { "type": "phv", "name": "H21" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "gtpu.teid" },
+              "src": [ { "type": "phv", "name": "W16" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B16" },
+              "src": [ { "type": "immediate", "name": "$data3" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B18" },
+              "src": [ { "type": "action_param", "name": "$data0" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B24" },
+              "src": [
+                { "type": "action_param", "name": "$data1" },
+                { "type": "phv", "name": "B24" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "H24" },
+              "src": [ { "type": "action_param", "name": "$data2" } ]
+            }
+          ]
+        }
+      ],
+      "how_referenced": "direct"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777222,
+      "name": "tbl_act_1",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 2,
+            "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": 0,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "result_physical_buses": [ 2 ],
+            "action_format": [
+              {
+                "action_name": "act_4",
+                "action_handle": 536870919,
+                "table_name": "filtering_ingress_port_vlan",
+                "next_table": 0,
+                "next_table_full": 99,
+                "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_4",
+          "handle": 536870919,
+          "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": "0" },
+                { "type": "phv", "name": "B14" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "spgw.do_spgw" },
+              "src": [
+                { "type": "immmediate", "name": "0" },
+                { "type": "phv", "name": "B13" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870919,
+      "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": 16777223,
+      "name": "tbl_act_2",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 2,
+            "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_2",
+                "action_handle": 536870920,
+                "table_name": "spgw_ingress_ue_filter_table",
+                "next_table": 0,
+                "next_table_full": 34,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 66,
+                "immediate_fields": []
+              }
+            ],
+            "hash_functions": []
+          }
+        ],
+        "match_type": "match_with_no_key",
+        "uses_dynamic_key_masks": false
+      },
+      "actions": [
+        {
+          "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,
+          "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.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": "H32" } ]
+            },
+            {
+              "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": "H4" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "udp.dst_port" },
+              "src": [ { "type": "phv", "name": "H34" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "udp.len" },
+              "src": [ { "type": "phv", "name": "H36" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "udp.checksum" },
+              "src": [ { "type": "phv", "name": "H38" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B1" },
+              "src": [ { "type": "phv", "name": "B0" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "H10" },
+              "src": [ { "type": "phv", "name": "H9" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "H44" },
+              "src": [
+                { "type": "phv", "name": "H44" },
+                { "type": "phv", "name": "H44" }
+              ]
+            }
+          ]
+        }
+      ],
+      "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",
+      "handle": 16777224,
+      "name": "spgw_ingress.ue_filter_table",
+      "table_type": "match",
+      "size": 512,
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 2,
+            "size": 512,
+            "stage_table_type": "ternary_match",
+            "logical_table_id": 2,
+            "has_attached_gateway": false,
+            "pack_format": [
+              {
+                "table_word_width": 47,
+                "memory_word_width": 47,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 1,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_0--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--version--",
+                        "lsb_mem_word_offset": 43,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "version",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "--tcam_parity_0--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 32
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [ 0 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 0
+            },
+            "default_next_table": 0,
+            "result_physical_buses": [ 0 ],
+            "ternary_indirection_stage_table": {
+              "stage_number": 2,
+              "stage_table_type": "ternary_indirection",
+              "size": 32768,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 32,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 31,
+                      "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": 124,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 125,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 30,
+                      "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": 3,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 121,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 29,
+                      "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": 116,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 117,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 28,
+                      "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": 3,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 113,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 27,
+                      "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": 108,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 109,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 26,
+                      "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": 3,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 105,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 25,
+                      "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": 100,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 101,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 24,
+                      "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": 3,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 97,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 23,
+                      "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": 92,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 93,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 22,
+                      "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": 3,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 89,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 21,
+                      "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": 84,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 85,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 20,
+                      "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": 3,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 81,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 19,
+                      "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": 76,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 77,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 18,
+                      "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": 3,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 73,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 17,
+                      "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": 68,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 69,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 16,
+                      "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": 3,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 65,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 60,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 61,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 56,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 57,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 52,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 53,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 48,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 49,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 44,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 45,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 40,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 41,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 36,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 37,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 32,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 33,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 28,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 29,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 24,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 25,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 20,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 21,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 16,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 17,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 12,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 13,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 8,
+                          "field_name": "action"
+                        },
+                        {
+                          "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": 9,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 4,
+                          "field_name": "action"
+                        },
+                        {
+                          "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_1_3--"
+                        }
+                      ]
+                    },
+                    {
+                      "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": 3,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 1,
+                          "field_name": "--padding_1_3--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": {
+                "memory_type": "sram",
+                "memory_units_and_vpns": [ { "memory_units": [ 2 ], "vpns": [ 0 ] } ],
+                "spare_bank_memory_unit": 2
+              },
+              "action_format": [
+                {
+                  "action_name": "NoAction",
+                  "action_handle": 536870921,
+                  "table_name": "tbl_act_20",
+                  "next_table": 0,
+                  "next_table_full": 64,
+                  "vliw_instruction": 0,
+                  "vliw_instruction_full": 64,
+                  "immediate_fields": []
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870921,
+          "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": []
+        }
+      ],
+      "default_action_handle": 536870921,
+      "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": "lpm",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "ipv4",
+          "field_name": "dst_addr"
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777225,
+      "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_20",
+                "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_20",
+                "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",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 3,
+            "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": 0,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "result_physical_buses": [ 0 ],
+            "action_format": [
+              {
+                "action_name": "act_3",
+                "action_handle": 536870924,
+                "table_name": "tbl_act_20",
+                "next_table": 0,
+                "next_table_full": 64,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 66,
+                "immediate_fields": []
+              }
+            ],
+            "hash_functions": []
+          }
+        ],
+        "match_type": "match_with_no_key",
+        "uses_dynamic_key_masks": false
+      },
+      "actions": [
+        {
+          "name": "act_3",
+          "handle": 536870924,
+          "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": "1" },
+                { "type": "phv", "name": "B14" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870924,
+      "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": 16777228,
+      "name": "tbl_act_5",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 4,
+            "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": 0,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "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": "match_with_no_key",
+        "uses_dynamic_key_masks": false
+      },
+      "actions": [
+        {
+          "name": "act_5",
+          "handle": 536870925,
+          "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": "B14" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870925,
+      "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": 16777229,
+      "name": "spgw_ingress.dl_sess_lookup",
+      "table_type": "match",
+      "size": 3072,
+      "action_data_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 33554434,
+          "name": "spgw_ingress_dl_sess_lookup$action"
+        }
+      ],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [],
+      "stateful_table_refs": [],
+      "default_action_handle": 536870927,
+      "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"
+        }
+      ],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 5,
+            "size": 3072,
+            "stage_table_type": "hash_match",
+            "logical_table_id": 1,
+            "has_attached_gateway": true,
+            "hash_functions": [
+              {
+                "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": 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": 20, "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": 30, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 1,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "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" },
+                      { "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": 27, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 29, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 2,
+                    "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": 17, "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": 24, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 26, "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": 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": 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": 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": 28, "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": 12, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 15, "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": 27, "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": 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": 3, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 6,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 10, "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": 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": 28, "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": 7,
+                    "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": 16, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
+                      { "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": 5, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 8,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "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": 17, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 18, "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": 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": 20, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 23, "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": 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": 12, "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": 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": 28, "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": 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": 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" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 12,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "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": 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": 28, "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": 13,
+                    "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": 15, "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": 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": 1, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 14,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 10, "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": 19, "field_name": "ipv4.dst_addr" },
+                      { "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": 2, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 15,
+                    "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": 17, "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": 26, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 27, "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": 10, "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": 20, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 22, "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": 29, "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": 10, "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" },
+                      { "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": 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": 5, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 18,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "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": 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": 6, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 19,
+                    "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": 17, "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": 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": 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": 14, "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": 24, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 28, "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": 11, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 12, "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": 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": 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": 12, "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": 20, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 23, "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": 0, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 23,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "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": 24, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 26, "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": 10, "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": 20, "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": 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": 2, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 25,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "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": 20, "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": 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": 26,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "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": 17, "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": 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": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 4, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 27,
+                    "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": 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": 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": 30, "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": 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": 18, "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": 29, "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": 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": 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": 7, "field_name": "ipv4.dst_addr" }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "action_format": [
+              {
+                "action_name": "NoAction",
+                "action_handle": 536870927,
+                "table_name": "tbl_spgw_ingress_drop_now_0",
+                "next_table": 0,
+                "next_table_full": 82,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 65,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "spgw_ingress.set_dl_sess_info",
+                "action_handle": 536870926,
+                "table_name": "tbl_spgw_ingress_drop_now_0",
+                "next_table": 1,
+                "next_table_full": 82,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 64,
+                "immediate_fields": [
+                  {
+                    "param_name": "s1u_enb_addr",
+                    "param_type": "parameter",
+                    "param_shift": 0,
+                    "dest_start": 0,
+                    "dest_width": 32
+                  }
+                ]
+              }
+            ],
+            "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": 5,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 34,
+                            "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": 40,
+                            "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": 48,
+                            "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": 56,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 56,
+                            "field_name": "--padding_56_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": 5,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 34,
+                            "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": 40,
+                            "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": 48,
+                            "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": 56,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 56,
+                            "field_name": "--padding_56_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": 5,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 34,
+                            "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": 40,
+                            "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": 48,
+                            "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": 56,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 56,
+                            "field_name": "--padding_56_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": 536870927,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "spgw_ingress.set_dl_sess_info",
+          "handle": 536870926,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            { "name": "teid", "start_bit": 0, "position": 0, "bit_width": 32 },
+            {
+              "name": "s1u_enb_addr",
+              "start_bit": 32,
+              "position": 1,
+              "bit_width": 32
+            },
+            {
+              "name": "s1u_sgw_addr",
+              "start_bit": 64,
+              "position": 2,
+              "bit_width": 32
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "spgw.teid" },
+              "src": [ { "type": "action_param", "name": "teid" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "spgw.s1u_enb_addr" },
+              "src": [ { "type": "immediate", "name": "s1u_enb_addr" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "spgw.s1u_sgw_addr" },
+              "src": [ { "type": "action_param", "name": "s1u_sgw_addr" } ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 33554434,
+      "name": "spgw_ingress_dl_sess_lookup$action",
+      "table_type": "action",
+      "size": 4096,
+      "stage_tables": [
+        {
+          "stage_number": 5,
+          "size": 4096,
+          "stage_table_type": "action_data",
+          "logical_table_id": 1,
+          "pack_format": [
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 1,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 64,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "--padding_0_63--"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 64,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_63--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870927
+            },
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 1,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "s1u_sgw_addr"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 96,
+                      "field_name": "teid"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "s1u_sgw_addr"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 32,
+                      "field_name": "teid"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870926
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 90 ], "vpns": [ 0 ] },
+              { "memory_units": [ 91 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 91
+          }
+        }
+      ],
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870927,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "spgw_ingress.set_dl_sess_info",
+          "handle": 536870926,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            { "name": "teid", "start_bit": 0, "position": 0, "bit_width": 32 },
+            {
+              "name": "s1u_enb_addr",
+              "start_bit": 32,
+              "position": 1,
+              "bit_width": 32
+            },
+            {
+              "name": "s1u_sgw_addr",
+              "start_bit": 64,
+              "position": 2,
+              "bit_width": 32
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "spgw.teid" },
+              "src": [ { "type": "action_param", "name": "teid" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "spgw.s1u_enb_addr" },
+              "src": [ { "type": "immediate", "name": "s1u_enb_addr" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "spgw.s1u_sgw_addr" },
+              "src": [ { "type": "action_param", "name": "s1u_sgw_addr" } ]
+            }
+          ]
+        }
+      ],
+      "how_referenced": "direct"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777230,
+      "name": "tbl_spgw_ingress_drop_now",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 5,
+            "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": "spgw_ingress.drop_now",
+                "action_handle": 536870928,
+                "table_name": "spgw_ingress_ue_cdr_table",
+                "next_table": 0,
+                "next_table_full": 96,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 66,
+                "immediate_fields": []
+              }
+            ],
+            "hash_functions": []
+          }
+        ],
+        "match_type": "match_with_no_key",
+        "uses_dynamic_key_masks": false
+      },
+      "actions": [
+        {
+          "name": "spgw_ingress.drop_now",
+          "handle": 536870928,
+          "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": "ig_intr_md_for_tm.drop_ctl" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "H2" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "hasExited_0" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B14" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870928,
+      "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": 16777231,
+      "name": "spgw_ingress.ue_cdr_table",
+      "table_type": "match",
+      "size": 3072,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108865,
+          "name": "spgw_ingress.ue_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "default_action_handle": 536870930,
+      "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"
+        }
+      ],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 6,
+            "size": 3072,
+            "stage_table_type": "hash_match",
+            "logical_table_id": 0,
+            "has_attached_gateway": true,
+            "hash_functions": [
+              {
+                "hash_bits": [
+                  {
+                    "hash_bit": 0,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 0, "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" },
+                      { "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": 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": 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" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 1,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 1, "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": 17, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 18, "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" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 2,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 2, "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" },
+                      { "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": 20, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 25, "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" }
+                    ]
+                  },
+                  {
+                    "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": 15, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 18, "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": 29, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 4,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 4, "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": 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": 28, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 30, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 5,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 5, "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": 20, "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": 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" }
+                    ]
+                  },
+                  {
+                    "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": 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": 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": 23, "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": 29, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 31, "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": 12, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 14, "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" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 8,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 8, "field_name": "ipv4.dst_addr" },
+                      { "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": 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": 29, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 9,
+                    "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": 14, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 17, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 18, "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": 26, "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" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 10,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 0, "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": 14, "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": 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" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 11,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 1, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
+                      { "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": 20, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 26, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 12,
+                    "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": 17, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 29, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 13,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 3, "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": 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": 30, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 14,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 4, "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": 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": 30, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 15,
+                    "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": 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": 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": 29, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 16,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 6, "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": 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": 23, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 24, "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" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 17,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 7, "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": 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": 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": 31, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 18,
+                    "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": 14, "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": 23, "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" }
+                    ]
+                  },
+                  {
+                    "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": 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": 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": 29, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 20,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 0, "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": 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": 27, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 28, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 29, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 21,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 1, "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": 17, "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": 24, "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" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 22,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 2, "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": 20, "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": 31, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 23,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 3, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 17, "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": 26, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 30, "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": 11, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 22, "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" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 25,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 5, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 14, "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": 31, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 26,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 6, "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" },
+                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 17, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 27, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 27,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 7, "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": 17, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 18, "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" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 28,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 8, "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": 20, "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": 29, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 30, "field_name": "ipv4.dst_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 29,
+                    "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": 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": 30, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "action_format": [
+              {
+                "action_name": "spgw_ingress.update_ue_cdr",
+                "action_handle": 536870929,
+                "table_name": "tbl_act_21",
+                "next_table": 0,
+                "next_table_full": 97,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 64,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "NoAction",
+                "action_handle": 536870930,
+                "table_name": "tbl_act_21",
+                "next_table": 0,
+                "next_table_full": 97,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 64,
+                "immediate_fields": []
+              }
+            ],
+            "result_physical_buses": [ 12 ],
+            "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": 6,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 2,
+                            "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": 8,
+                            "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": 16,
+                            "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": 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": [ 74 ], "vpns": [ 0 ] } ]
+                }
+              },
+              {
+                "stage_number": 6,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 2,
+                            "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": 8,
+                            "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": 16,
+                            "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": 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": [ 75 ], "vpns": [ 1 ] } ]
+                }
+              },
+              {
+                "stage_number": 6,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 2,
+                            "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": 8,
+                            "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": 16,
+                            "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": 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": [ 76 ], "vpns": [ 2 ] } ]
+                }
+              }
+            ]
+          }
+        ],
+        "match_type": "exact",
+        "uses_dynamic_key_masks": false
+      },
+      "actions": [
+        {
+          "name": "spgw_ingress.update_ue_cdr",
+          "handle": 536870929,
+          "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": []
+        },
+        {
+          "name": "NoAction",
+          "handle": 536870930,
+          "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": 67108865,
+      "name": "spgw_ingress.ue_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 6,
+          "size": 4096,
+          "stage_table_type": "statistics",
+          "logical_table_id": 0,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 54 ], "vpns": [ 0 ] },
+              { "memory_units": [ 55 ], "vpns": [ 1 ] },
+              { "memory_units": [ 56 ], "vpns": [ 2 ] }
+            ],
+            "spare_bank_memory_unit": 56
+          },
+          "stats_alu_index": 2
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777232,
+      "name": "tbl_act_6",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 6,
+            "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_6",
+                "action_handle": 536870931,
+                "table_name": "tbl_spgw_ingress_gtpu_decap_0",
+                "next_table": 0,
+                "next_table_full": 98,
+                "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_6",
+          "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": "spgw.ipv4_len" },
+              "src": [ { "type": "phv", "name": "H13" } ]
+            }
+          ]
+        }
+      ],
+      "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": [],
+      "performs_hash_action": false,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [],
+      "stateful_table_refs": []
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777233,
+      "name": "tbl_spgw_ingress_gtpu_decap",
+      "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": 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": 3,
+            "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": 536870932,
+                  "table_name": "filtering_ingress_port_vlan",
+                  "next_table": 0,
+                  "next_table_full": 99,
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 66,
+                  "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": 536870932,
+          "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": "H44" },
+              "src": [
+                { "type": "immediate", "name": "$data0" },
+                { "type": "phv", "name": "H44" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870932,
+      "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": 16777234,
+      "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": 3,
+            "has_attached_gateway": true,
+            "pack_format": [
+              {
+                "table_word_width": 47,
+                "memory_word_width": 47,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 1,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_0--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--version--",
+                        "lsb_mem_word_offset": 43,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "version",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "--tcam_parity_0--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "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",
+                        "lsb_mem_word_offset": 20,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "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
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [ 0 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 0
+            },
+            "default_next_table": 4,
+            "result_physical_buses": [ 0 ],
+            "ternary_indirection_stage_table": {
+              "stage_number": 6,
+              "stage_table_type": "ternary_indirection",
+              "size": 4096,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 4,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 3,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 3,
+                          "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": 16,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 99,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 13,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 115,
+                          "field_name": "--padding_19_31--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 2,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 3,
+                          "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": 16,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 67,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 13,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 83,
+                          "field_name": "--padding_19_31--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 3,
+                          "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": 16,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 35,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 13,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 51,
+                          "field_name": "--padding_19_31--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 3,
+                          "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": 16,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 3,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 13,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 19,
+                          "field_name": "--padding_19_31--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": {
+                "memory_type": "sram",
+                "memory_units_and_vpns": [ { "memory_units": [ 2 ], "vpns": [ 0 ] } ],
+                "spare_bank_memory_unit": 2
+              },
+              "action_format": [
+                {
+                  "action_name": "nop",
+                  "action_handle": 536870935,
+                  "table_name": "filtering_fwd_classifier",
+                  "next_table": 0,
+                  "next_table_full": 100,
+                  "vliw_instruction": 0,
+                  "vliw_instruction_full": 64,
+                  "immediate_fields": []
+                },
+                {
+                  "action_name": "filtering.push_internal_vlan",
+                  "action_handle": 536870933,
+                  "table_name": "filtering_fwd_classifier",
+                  "next_table": 0,
+                  "next_table_full": 100,
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 67,
+                  "immediate_fields": [
+                    {
+                      "param_name": "constant_0",
+                      "param_type": "constant",
+                      "const_value": 0,
+                      "param_shift": 0,
+                      "dest_start": 12,
+                      "dest_width": 1
+                    },
+                    {
+                      "param_name": "constant_0",
+                      "param_type": "constant",
+                      "const_value": 0,
+                      "param_shift": 0,
+                      "dest_start": 13,
+                      "dest_width": 3
+                    },
+                    {
+                      "param_name": "new_vlan_id",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 12
+                    }
+                  ]
+                },
+                {
+                  "action_name": "filtering.set_vlan",
+                  "action_handle": 536870934,
+                  "table_name": "filtering_fwd_classifier",
+                  "next_table": 0,
+                  "next_table_full": 100,
+                  "vliw_instruction": 2,
+                  "vliw_instruction_full": 68,
+                  "immediate_fields": [
+                    {
+                      "param_name": "new_vlan_id",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 12
+                    }
+                  ]
+                },
+                {
+                  "action_name": "filtering.drop",
+                  "action_handle": 536870936,
+                  "table_name": "filtering_fwd_classifier",
+                  "next_table": 0,
+                  "next_table_full": 100,
+                  "vliw_instruction": 3,
+                  "vliw_instruction_full": 69,
+                  "immediate_fields": []
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108866,
+          "name": "filtering.ingress_port_vlan_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "nop",
+          "handle": 536870935,
+          "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": "filtering.push_internal_vlan",
+          "handle": 536870933,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "new_vlan_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 12
+            }
+          ],
+          "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": "vlan_tag.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "H45" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
+              "src": [ { "type": "phv", "name": "H14" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.ether_type" },
+              "src": [ { "immediate": "33024" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "fabric_metadata.pop_vlan_at_egress" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B14" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "H3" },
+              "src": [ { "type": "immediate", "name": "$data0" } ]
+            }
+          ]
+        },
+        {
+          "name": "filtering.set_vlan",
+          "handle": 536870934,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "new_vlan_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 12
+            }
+          ],
+          "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": "vlan_tag.vlan_id" },
+              "src": [
+                { "type": "immediate", "name": "new_vlan_id" },
+                { "type": "phv", "name": "H3" }
+              ]
+            }
+          ]
+        },
+        {
+          "name": "filtering.drop",
+          "handle": 536870936,
+          "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": "ig_intr_md_for_tm.drop_ctl" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "H2" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870935,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "ig_intr_md.ingress_port",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 9,
+          "bit_width_full": 9,
+          "is_valid": false,
+          "instance_name": "ig_intr_md",
+          "field_name": "ingress_port"
+        },
+        {
+          "name": "vlan_tag",
+          "position": 1,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 1,
+          "bit_width_full": 1,
+          "is_valid": true,
+          "instance_name": "vlan_tag",
+          "field_name": ""
+        },
+        {
+          "name": "vlan_tag.vlan_id",
+          "position": 2,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 12,
+          "bit_width_full": 12,
+          "is_valid": false,
+          "instance_name": "vlan_tag",
+          "field_name": "vlan_id"
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108866,
+      "name": "filtering.ingress_port_vlan_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 6,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 3,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 30 ], "vpns": [ 0 ] },
+              { "memory_units": [ 31 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 31
+          },
+          "stats_alu_index": 1
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777235,
+      "name": "filtering.fwd_classifier",
+      "table_type": "match",
+      "size": 3072,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108867,
+          "name": "filtering.fwd_classifier_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "default_action_handle": 536870937,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "ig_intr_md.ingress_port",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 9,
+          "bit_width_full": 9,
+          "is_valid": false,
+          "instance_name": "ig_intr_md",
+          "field_name": "ingress_port"
+        },
+        {
+          "name": "ethernet.dst_addr",
+          "position": 1,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 48,
+          "bit_width_full": 48,
+          "is_valid": false,
+          "instance_name": "ethernet",
+          "field_name": "dst_addr"
+        },
+        {
+          "name": "fabric_metadata.original_ether_type",
+          "position": 2,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 16,
+          "bit_width_full": 16,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "original_ether_type"
+        }
+      ],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 6,
+            "size": 3072,
+            "stage_table_type": "hash_match",
+            "logical_table_id": 4,
+            "has_attached_gateway": false,
+            "hash_functions": [
+              {
+                "hash_bits": [
+                  {
+                    "hash_bit": 0,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 0, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 1,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 1, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 2,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 2, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 3,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 3, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 4,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 4, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 5,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 5, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 6,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 6, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 7,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 7, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 8,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 8, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 9,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 10,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 0, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 11,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 1, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 12,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 2, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 13,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 3, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 14,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 4, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 15,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 5, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 16,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 6, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 17,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 7, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 18,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 8, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 19,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 20,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 0, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 21,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 1, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 22,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 2, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 23,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 3, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 24,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 4, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 25,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 5, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 26,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 6, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 27,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 7, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 28,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 8, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 29,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "action_format": [
+              {
+                "action_name": "filtering.set_forwarding_type",
+                "action_handle": 536870937,
+                "table_name": "tbl_act_25",
+                "next_table": 0,
+                "next_table_full": 101,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 70,
+                "immediate_fields": [
+                  {
+                    "param_name": "fwd_type",
+                    "param_type": "parameter",
+                    "param_shift": 0,
+                    "dest_start": 1,
+                    "dest_width": 3
+                  }
+                ]
+              }
+            ],
+            "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": 6,
+                "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": "immediate",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 4,
+                            "field_name": "version",
+                            "match_mode": "s1q0"
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 65,
+                            "start_bit": 9,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 7
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 8,
+                            "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": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 16,
+                            "start_bit": 24,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "start_bit": 32,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 32,
+                            "start_bit": 40,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "fabric_metadata.original_ether_type",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "start_bit": 0,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "fabric_metadata.original_ether_type",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 48,
+                            "start_bit": 8,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ig_intr_md.ingress_port",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 56,
+                            "start_bit": 0,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 64,
+                            "field_name": "--padding_64_64--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 56,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 72,
+                            "field_name": "--padding_72_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": 6,
+                "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": "immediate",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 4,
+                            "field_name": "version",
+                            "match_mode": "s1q0"
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 65,
+                            "start_bit": 9,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 7
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 8,
+                            "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": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 16,
+                            "start_bit": 24,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "start_bit": 32,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 32,
+                            "start_bit": 40,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "fabric_metadata.original_ether_type",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "start_bit": 0,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "fabric_metadata.original_ether_type",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 48,
+                            "start_bit": 8,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ig_intr_md.ingress_port",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 56,
+                            "start_bit": 0,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 64,
+                            "field_name": "--padding_64_64--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 56,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 72,
+                            "field_name": "--padding_72_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": 6,
+                "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": "immediate",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 4,
+                            "field_name": "version",
+                            "match_mode": "s1q0"
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 65,
+                            "start_bit": 9,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 7
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 8,
+                            "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": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 16,
+                            "start_bit": 24,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "start_bit": 32,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 32,
+                            "start_bit": 40,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "fabric_metadata.original_ether_type",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "start_bit": 0,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "fabric_metadata.original_ether_type",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 48,
+                            "start_bit": 8,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ig_intr_md.ingress_port",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 56,
+                            "start_bit": 0,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 64,
+                            "field_name": "--padding_64_64--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 56,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 72,
+                            "field_name": "--padding_72_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": "filtering.set_forwarding_type",
+          "handle": 536870937,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "p4_parameters": [
+            {
+              "name": "fwd_type",
+              "start_bit": 0,
+              "position": 0,
+              "default_value": 0,
+              "bit_width": 3
+            }
+          ],
+          "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": "fabric_metadata.fwd_type" },
+              "src": [
+                { "type": "immediate", "name": "fwd_type" },
+                { "type": "phv", "name": "B13" }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108867,
+      "name": "filtering.fwd_classifier_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 6,
+          "size": 4096,
+          "stage_table_type": "statistics",
+          "logical_table_id": 4,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 78 ], "vpns": [ 0 ] },
+              { "memory_units": [ 79 ], "vpns": [ 1 ] },
+              { "memory_units": [ 80 ], "vpns": [ 2 ] }
+            ],
+            "spare_bank_memory_unit": 80
+          },
+          "stats_alu_index": 3
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777236,
+      "name": "tbl_act_10",
+      "table_type": "match",
+      "size": 512,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 6,
+            "size": 1,
+            "stage_table_type": "match_with_no_key",
+            "logical_table_id": 5,
+            "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": 0,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "result_physical_buses": [ 2 ],
+            "action_format": [
+              {
+                "action_name": "act_10",
+                "action_handle": 536870938,
+                "table_name": "forwarding_bridging",
+                "next_table": 0,
+                "next_table_full": 112,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 64,
+                "immediate_fields": []
+              }
+            ],
+            "hash_functions": []
+          }
+        ],
+        "match_type": "match_with_no_key",
+        "uses_dynamic_key_masks": false
+      },
+      "actions": [
+        {
+          "name": "act_10",
+          "handle": 536870938,
+          "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": []
+        }
+      ],
+      "default_action_handle": 536870938,
+      "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": true,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "indirect",
+          "handle": 67108868,
+          "name": "port_counters_control.ingress_port_counter"
+        }
+      ],
+      "stateful_table_refs": []
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108868,
+      "name": "port_counters_control.ingress_port_counter",
+      "table_type": "statistics",
+      "size": 511,
+      "stage_tables": [
+        {
+          "stage_number": 6,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 5,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 6 ], "vpns": [ 0 ] },
+              { "memory_units": [ 7 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 7
+          },
+          "stats_alu_index": 0
+        }
+      ],
+      "how_referenced": "indirect",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777237,
+      "name": "forwarding.bridging",
+      "table_type": "match",
+      "size": 512,
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 7,
+            "size": 512,
+            "stage_table_type": "ternary_match",
+            "logical_table_id": 0,
+            "has_attached_gateway": true,
+            "pack_format": [
+              {
+                "table_word_width": 94,
+                "memory_word_width": 47,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 2,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_1--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_1--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ethernet.dst_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 16,
+                        "field_width": 32
+                      },
+                      {
+                        "field_name": "ethernet.dst_addr",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "--tcam_payload_0--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--version--",
+                        "lsb_mem_word_offset": 43,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "version",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "--tcam_parity_0--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "vlan_tag.vlan_id",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ethernet.dst_addr",
+                        "lsb_mem_word_offset": 9,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "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
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [ 0, 1 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 1
+            },
+            "default_next_table": 0,
+            "result_physical_buses": [ 0, 2 ],
+            "ternary_indirection_stage_table": {
+              "stage_number": 7,
+              "stage_table_type": "ternary_indirection",
+              "size": 2048,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 2,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 66,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 98,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 2,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 34,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": {
+                "memory_type": "sram",
+                "memory_units_and_vpns": [ { "memory_units": [ 2 ], "vpns": [ 0 ] } ],
+                "spare_bank_memory_unit": 2
+              },
+              "action_format": [
+                {
+                  "action_name": "NoAction",
+                  "action_handle": 536870940,
+                  "table_name": "forwarding_acl",
+                  "next_table": 0,
+                  "next_table_full": 128,
+                  "vliw_instruction": 0,
+                  "vliw_instruction_full": 65,
+                  "immediate_fields": []
+                },
+                {
+                  "action_name": "forwarding.set_next_id",
+                  "action_handle": 536870939,
+                  "table_name": "forwarding_acl",
+                  "next_table": 0,
+                  "next_table_full": 128,
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 64,
+                  "immediate_fields": [
+                    {
+                      "param_name": "next_id",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 32
+                    }
+                  ]
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108869,
+          "name": "forwarding.bridging_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870940,
+          "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": "forwarding.set_next_id",
+          "handle": 536870939,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "next_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 32
+            }
+          ],
+          "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": "fabric_metadata.next_id" },
+              "src": [ { "type": "immediate", "name": "next_id" } ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870940,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "vlan_tag.vlan_id",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 12,
+          "bit_width_full": 12,
+          "is_valid": false,
+          "instance_name": "vlan_tag",
+          "field_name": "vlan_id"
+        },
+        {
+          "name": "ethernet.dst_addr",
+          "position": 1,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 48,
+          "bit_width_full": 48,
+          "is_valid": false,
+          "instance_name": "ethernet",
+          "field_name": "dst_addr"
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108869,
+      "name": "forwarding.bridging_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 7,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 0,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 6 ], "vpns": [ 0 ] },
+              { "memory_units": [ 7 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 7
+          },
+          "stats_alu_index": 0
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777238,
+      "name": "forwarding.mpls",
+      "table_type": "match",
+      "size": 3072,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108870,
+          "name": "forwarding.mpls_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "default_action_handle": 536870942,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "mpls.label",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 20,
+          "bit_width_full": 20,
+          "is_valid": false,
+          "instance_name": "mpls",
+          "field_name": "label"
+        }
+      ],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 7,
+            "size": 3072,
+            "stage_table_type": "hash_match",
+            "logical_table_id": 1,
+            "has_attached_gateway": true,
+            "hash_functions": [
+              {
+                "hash_bits": [
+                  {
+                    "hash_bit": 0,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 4, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 1,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 5, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 2,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 6, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 3,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 7, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 4,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 8, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 5,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 9, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 6,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 0, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 7,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 1, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 8,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 2, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 9,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 3, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 10,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 4, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 11,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 5, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 12,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 6, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 13,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 7, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 14,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 8, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 15,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 9, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 16,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 0, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 17,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 1, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 18,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 2, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 19,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 3, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 20,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 4, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 21,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 5, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 22,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 6, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 23,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 7, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 24,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 8, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 25,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 9, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 26,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 0, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 27,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 1, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 28,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 2, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 29,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 3, "field_name": "mpls.label" }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "action_format": [
+              {
+                "action_name": "NoAction",
+                "action_handle": 536870942,
+                "table_name": "tbl_act_22",
+                "next_table": 0,
+                "next_table_full": 116,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 65,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "forwarding.pop_mpls_and_next",
+                "action_handle": 536870941,
+                "table_name": "tbl_act_22",
+                "next_table": 0,
+                "next_table_full": 116,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 66,
+                "immediate_fields": [
+                  {
+                    "param_name": "next_id",
+                    "param_type": "parameter",
+                    "param_shift": 0,
+                    "dest_start": 0,
+                    "dest_width": 32
+                  }
+                ]
+              }
+            ],
+            "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": 7,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "mpls.label",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 38,
+                            "start_bit": 10,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 2
+                          },
+                          {
+                            "field_name": "mpls.label",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "start_bit": 12,
+                            "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": 4,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 34,
+                            "field_name": "--padding_34_37--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 64,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 48,
+                            "field_name": "--padding_48_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": 7,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "mpls.label",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 38,
+                            "start_bit": 10,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 2
+                          },
+                          {
+                            "field_name": "mpls.label",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "start_bit": 12,
+                            "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": 4,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 34,
+                            "field_name": "--padding_34_37--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 64,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 48,
+                            "field_name": "--padding_48_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": 7,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "mpls.label",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 38,
+                            "start_bit": 10,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 2
+                          },
+                          {
+                            "field_name": "mpls.label",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "start_bit": 12,
+                            "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": 4,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 34,
+                            "field_name": "--padding_34_37--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 64,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 48,
+                            "field_name": "--padding_48_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": 536870942,
+          "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": []
+        },
+        {
+          "name": "forwarding.pop_mpls_and_next",
+          "handle": 536870941,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "p4_parameters": [
+            {
+              "name": "next_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 32
+            }
+          ],
+          "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": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "0" },
+                { "type": "phv", "name": "H45" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "fabric_metadata.next_id" },
+              "src": [ { "type": "immediate", "name": "next_id" } ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108870,
+      "name": "forwarding.mpls_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 7,
+          "size": 4096,
+          "stage_table_type": "statistics",
+          "logical_table_id": 1,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 78 ], "vpns": [ 0 ] },
+              { "memory_units": [ 79 ], "vpns": [ 1 ] },
+              { "memory_units": [ 80 ], "vpns": [ 2 ] }
+            ],
+            "spare_bank_memory_unit": 80
+          },
+          "stats_alu_index": 3
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777239,
+      "name": "tbl_act_7",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 7,
+            "size": 1,
+            "stage_table_type": "match_with_no_key",
+            "logical_table_id": 4,
+            "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": [ 0 ],
+            "action_format": [
+              {
+                "action_name": "act_7",
+                "action_handle": 536870943,
+                "table_name": "forwarding_acl",
+                "next_table": 0,
+                "next_table_full": 128,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 67,
+                "immediate_fields": []
+              }
+            ],
+            "hash_functions": []
+          }
+        ],
+        "match_type": "match_with_no_key",
+        "uses_dynamic_key_masks": false
+      },
+      "actions": [
+        {
+          "name": "act_7",
+          "handle": 536870943,
+          "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": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "2048" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "fabric_metadata.original_ether_type" },
+              "src": [ { "immediate": "2048" } ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870943,
+      "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": 16777240,
+      "name": "forwarding.unicast_v4",
+      "table_type": "match",
+      "size": 512,
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 7,
+            "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,
+                "number_memory_units_per_table_word": 1,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_0--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--version--",
+                        "lsb_mem_word_offset": 43,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "version",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "--tcam_parity_0--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 24,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 9,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 24
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [ 5 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 5
+            },
+            "default_next_table": 0,
+            "result_physical_buses": [ 10 ],
+            "ternary_indirection_stage_table": {
+              "stage_number": 7,
+              "stage_table_type": "ternary_indirection",
+              "size": 2048,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 2,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 66,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 98,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 2,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 34,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": {
+                "memory_type": "sram",
+                "memory_units_and_vpns": [ { "memory_units": [ 14 ], "vpns": [ 0 ] } ],
+                "spare_bank_memory_unit": 14
+              },
+              "action_format": [
+                {
+                  "action_name": "NoAction",
+                  "action_handle": 536870945,
+                  "table_name": "forwarding_acl",
+                  "next_table": 0,
+                  "next_table_full": 128,
+                  "vliw_instruction": 0,
+                  "vliw_instruction_full": 65,
+                  "immediate_fields": []
+                },
+                {
+                  "action_name": "forwarding.set_next_id",
+                  "action_handle": 536870944,
+                  "table_name": "forwarding_acl",
+                  "next_table": 0,
+                  "next_table_full": 128,
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 68,
+                  "immediate_fields": [
+                    {
+                      "param_name": "next_id",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 32
+                    }
+                  ]
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108871,
+          "name": "forwarding.unicast_v4_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870945,
+          "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": "forwarding.set_next_id",
+          "handle": 536870944,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "next_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 32
+            }
+          ],
+          "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": "fabric_metadata.next_id" },
+              "src": [ { "type": "immediate", "name": "next_id" } ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870945,
+      "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": "lpm",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "ipv4",
+          "field_name": "dst_addr"
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108871,
+      "name": "forwarding.unicast_v4_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 7,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 2,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 30 ], "vpns": [ 0 ] },
+              { "memory_units": [ 31 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 31
+          },
+          "stats_alu_index": 1
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777241,
+      "name": "forwarding.multicast_v4",
+      "table_type": "match",
+      "size": 512,
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 7,
+            "size": 512,
+            "stage_table_type": "ternary_match",
+            "logical_table_id": 3,
+            "has_attached_gateway": true,
+            "pack_format": [
+              {
+                "table_word_width": 141,
+                "memory_word_width": 47,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 3,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_2--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_2--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "vlan_tag.vlan_id",
+                        "lsb_mem_word_offset": 17,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "--tcam_payload_1--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_1--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 24,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "--tcam_payload_0--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--version--",
+                        "lsb_mem_word_offset": 43,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "version",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "--tcam_parity_0--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 16
+                      },
+                      {
+                        "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": 8,
+                        "field_width": 4
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 25,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [ 2, 3, 4 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 4
+            },
+            "default_next_table": 0,
+            "result_physical_buses": [ 4, 6, 8 ],
+            "ternary_indirection_stage_table": {
+              "stage_number": 7,
+              "stage_table_type": "ternary_indirection",
+              "size": 2048,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 2,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 66,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 98,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 2,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 34,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": {
+                "memory_type": "sram",
+                "memory_units_and_vpns": [ { "memory_units": [ 26 ], "vpns": [ 0 ] } ],
+                "spare_bank_memory_unit": 26
+              },
+              "action_format": [
+                {
+                  "action_name": "NoAction",
+                  "action_handle": 536870947,
+                  "table_name": "forwarding_acl",
+                  "next_table": 0,
+                  "next_table_full": 128,
+                  "vliw_instruction": 0,
+                  "vliw_instruction_full": 65,
+                  "immediate_fields": []
+                },
+                {
+                  "action_name": "forwarding.set_next_id",
+                  "action_handle": 536870946,
+                  "table_name": "forwarding_acl",
+                  "next_table": 0,
+                  "next_table_full": 128,
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 70,
+                  "immediate_fields": [
+                    {
+                      "param_name": "next_id",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 32
+                    }
+                  ]
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108872,
+          "name": "forwarding.multicast_v4_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870947,
+          "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": "forwarding.set_next_id",
+          "handle": 536870946,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "next_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 32
+            }
+          ],
+          "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": "fabric_metadata.next_id" },
+              "src": [ { "type": "immediate", "name": "next_id" } ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870947,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "vlan_tag.vlan_id",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 12,
+          "bit_width_full": 12,
+          "is_valid": false,
+          "instance_name": "vlan_tag",
+          "field_name": "vlan_id"
+        },
+        {
+          "name": "ipv4.dst_addr",
+          "position": 1,
+          "match_type": "lpm",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "ipv4",
+          "field_name": "dst_addr"
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108872,
+      "name": "forwarding.multicast_v4_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 7,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 3,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 54 ], "vpns": [ 0 ] },
+              { "memory_units": [ 55 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 55
+          },
+          "stats_alu_index": 2
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777242,
+      "name": "forwarding.acl",
+      "table_type": "match",
+      "size": 256,
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 8,
+            "size": 512,
+            "stage_table_type": "ternary_match",
+            "logical_table_id": 0,
+            "has_attached_gateway": false,
+            "pack_format": [
+              {
+                "table_word_width": 282,
+                "memory_word_width": 47,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 6,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_5--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 5,
+                        "msb_mem_word_idx": 5,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_5--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 5,
+                        "msb_mem_word_idx": 5,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ethernet.dst_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 5,
+                        "msb_mem_word_idx": 5,
+                        "source": "spec",
+                        "start_bit": 16,
+                        "field_width": 32
+                      },
+                      {
+                        "field_name": "ethernet.src_addr",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 5,
+                        "msb_mem_word_idx": 5,
+                        "source": "spec",
+                        "start_bit": 16,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ig_intr_md.ingress_port",
+                        "lsb_mem_word_offset": 41,
+                        "lsb_mem_word_idx": 5,
+                        "msb_mem_word_idx": 5,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_payload_4--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--version--",
+                        "lsb_mem_word_offset": 43,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "version",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "--tcam_parity_4--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ethernet.src_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "spec",
+                        "start_bit": 32,
+                        "field_width": 16
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 17,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ethernet.src_addr",
+                        "lsb_mem_word_offset": 25,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "spec",
+                        "start_bit": 24,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "spec",
+                        "start_bit": 16,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "--tcam_payload_3--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_3--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "spec",
+                        "start_bit": 24,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ipv4.src_addr",
+                        "lsb_mem_word_offset": 9,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 17,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ipv4.src_addr",
+                        "lsb_mem_word_offset": 25,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "spec",
+                        "start_bit": 16,
+                        "field_width": 16
+                      },
+                      {
+                        "field_name": "fabric_metadata.l4_dst_port",
+                        "lsb_mem_word_offset": 41,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 4
+                      },
+                      {
+                        "field_name": "fabric_metadata.l4_dst_port",
+                        "lsb_mem_word_offset": 41,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "spec",
+                        "start_bit": 4,
+                        "field_width": 4
+                      },
+                      {
+                        "field_name": "--tcam_payload_2--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_2--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ipv4.src_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ethernet.dst_addr",
+                        "lsb_mem_word_offset": 9,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 16
+                      },
+                      {
+                        "field_name": "ethernet.src_addr",
+                        "lsb_mem_word_offset": 25,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 16
+                      },
+                      {
+                        "field_name": "--tcam_payload_1--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_1--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "fabric_metadata.l4_src_port",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "fabric_metadata.l4_dst_port",
+                        "lsb_mem_word_offset": 9,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "fabric_metadata.original_ether_type",
+                        "lsb_mem_word_offset": 17,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "fabric_metadata.l4_src_port",
+                        "lsb_mem_word_offset": 25,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ig_intr_md.ingress_port",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "icmp.icmp_type",
+                        "lsb_mem_word_offset": 41,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 4
+                      },
+                      {
+                        "field_name": "icmp.icmp_type",
+                        "lsb_mem_word_offset": 41,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 4,
+                        "field_width": 4
+                      },
+                      {
+                        "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
+                      },
+                      {
+                        "field_name": "vlan_tag.vlan_id",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "fabric_metadata.original_ether_type",
+                        "lsb_mem_word_offset": 9,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "fabric_metadata.ip_proto",
+                        "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": "icmp.icmp_code",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [ 0, 1, 2, 3, 4, 5 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 5
+            },
+            "default_next_table": 0,
+            "result_physical_buses": [ 0, 2, 4, 6, 8, 10 ],
+            "ternary_indirection_stage_table": {
+              "stage_number": 8,
+              "stage_table_type": "ternary_indirection",
+              "size": 2048,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 2,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 66,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 98,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 2,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 34,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": {
+                "memory_type": "sram",
+                "memory_units_and_vpns": [ { "memory_units": [ 2 ], "vpns": [ 0 ] } ],
+                "spare_bank_memory_unit": 2
+              },
+              "action_format": [
+                {
+                  "action_name": "nop",
+                  "action_handle": 536870951,
+                  "table_name": "next_simple",
+                  "next_table": 0,
+                  "next_table_full": 144,
+                  "vliw_instruction": 0,
+                  "vliw_instruction_full": 67,
+                  "immediate_fields": []
+                },
+                {
+                  "action_name": "forwarding.set_next_id",
+                  "action_handle": 536870948,
+                  "table_name": "next_simple",
+                  "next_table": 0,
+                  "next_table_full": 144,
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 64,
+                  "immediate_fields": [
+                    {
+                      "param_name": "next_id",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 32
+                    }
+                  ]
+                },
+                {
+                  "action_name": "forwarding.duplicate_to_controller",
+                  "action_handle": 536870949,
+                  "table_name": "next_simple",
+                  "next_table": 0,
+                  "next_table_full": 144,
+                  "vliw_instruction": 2,
+                  "vliw_instruction_full": 65,
+                  "immediate_fields": [
+                    {
+                      "param_name": "constant_192",
+                      "param_type": "constant",
+                      "const_value": 192,
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 9
+                    }
+                  ]
+                },
+                {
+                  "action_name": "forwarding.drop",
+                  "action_handle": 536870950,
+                  "table_name": "next_simple",
+                  "next_table": 0,
+                  "next_table_full": 144,
+                  "vliw_instruction": 3,
+                  "vliw_instruction_full": 66,
+                  "immediate_fields": []
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108873,
+          "name": "forwarding.acl_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "nop",
+          "handle": 536870951,
+          "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": "forwarding.set_next_id",
+          "handle": 536870948,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "next_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 32
+            }
+          ],
+          "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": "fabric_metadata.next_id" },
+              "src": [ { "type": "immediate", "name": "next_id" } ]
+            }
+          ]
+        },
+        {
+          "name": "forwarding.duplicate_to_controller",
+          "handle": 536870949,
+          "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": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "immediate", "name": "$constant0" },
+                { "type": "phv", "name": "H1" }
+              ]
+            }
+          ]
+        },
+        {
+          "name": "forwarding.drop",
+          "handle": 536870950,
+          "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": "ig_intr_md_for_tm.drop_ctl" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "H2" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870951,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "ig_intr_md.ingress_port",
+          "position": 0,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 9,
+          "bit_width_full": 9,
+          "is_valid": false,
+          "instance_name": "ig_intr_md",
+          "field_name": "ingress_port"
+        },
+        {
+          "name": "fabric_metadata.ip_proto",
+          "position": 1,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 8,
+          "bit_width_full": 8,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "ip_proto"
+        },
+        {
+          "name": "fabric_metadata.l4_src_port",
+          "position": 2,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 16,
+          "bit_width_full": 16,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "l4_src_port"
+        },
+        {
+          "name": "fabric_metadata.l4_dst_port",
+          "position": 3,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 16,
+          "bit_width_full": 16,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "l4_dst_port"
+        },
+        {
+          "name": "fabric_metadata.original_ether_type",
+          "position": 4,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 16,
+          "bit_width_full": 16,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "original_ether_type"
+        },
+        {
+          "name": "ethernet.dst_addr",
+          "position": 5,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 48,
+          "bit_width_full": 48,
+          "is_valid": false,
+          "instance_name": "ethernet",
+          "field_name": "dst_addr"
+        },
+        {
+          "name": "ethernet.src_addr",
+          "position": 6,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 48,
+          "bit_width_full": 48,
+          "is_valid": false,
+          "instance_name": "ethernet",
+          "field_name": "src_addr"
+        },
+        {
+          "name": "vlan_tag.vlan_id",
+          "position": 7,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 12,
+          "bit_width_full": 12,
+          "is_valid": false,
+          "instance_name": "vlan_tag",
+          "field_name": "vlan_id"
+        },
+        {
+          "name": "ipv4.src_addr",
+          "position": 8,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "ipv4",
+          "field_name": "src_addr"
+        },
+        {
+          "name": "ipv4.dst_addr",
+          "position": 9,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "ipv4",
+          "field_name": "dst_addr"
+        },
+        {
+          "name": "icmp.icmp_type",
+          "position": 10,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 8,
+          "bit_width_full": 8,
+          "is_valid": false,
+          "instance_name": "icmp",
+          "field_name": "icmp_type"
+        },
+        {
+          "name": "icmp.icmp_code",
+          "position": 11,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 8,
+          "bit_width_full": 8,
+          "is_valid": false,
+          "instance_name": "icmp",
+          "field_name": "icmp_code"
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108873,
+      "name": "forwarding.acl_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 8,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 0,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 78 ], "vpns": [ 0 ] },
+              { "memory_units": [ 79 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 79
+          },
+          "stats_alu_index": 3
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777243,
+      "name": "next.simple",
+      "table_type": "match",
+      "size": 3072,
+      "action_data_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 33554435,
+          "name": "next_simple$action"
+        }
+      ],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108874,
+          "name": "next.simple_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "default_action_handle": 536870956,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "fabric_metadata.next_id",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "next_id"
+        }
+      ],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 9,
+            "size": 3072,
+            "stage_table_type": "hash_match",
+            "logical_table_id": 0,
+            "has_attached_gateway": false,
+            "hash_functions": [
+              {
+                "hash_bits": [
+                  {
+                    "hash_bit": 0,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 1,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 24,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 2,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 3,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 17,
+                        "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": 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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 4,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 17,
+                        "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": 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": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 5,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 16,
+                        "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": 22,
+                        "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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 6,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "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": 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": 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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 7,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 16,
+                        "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": 22,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 8,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 19,
+                        "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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 9,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 20,
+                        "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": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 10,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 11,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 12,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "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": 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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 13,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "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": 21,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 14,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "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": 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": 24,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 15,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 19,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 21,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 16,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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": 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": 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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 17,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 22,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 18,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "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": 22,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 19,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "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": 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": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 20,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 16,
+                        "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": 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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 21,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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": 20,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 22,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 23,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 24,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 25,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "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": 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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 26,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 16,
+                        "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"
+                      },
+                      {
+                        "field_bit": 24,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 25,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 27,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 28,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "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": 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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 29,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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": 24,
+                        "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"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "action_format": [
+              {
+                "action_name": "NoAction",
+                "action_handle": 536870956,
+                "table_name": "next_hashed",
+                "next_table": 0,
+                "next_table_full": 162,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 65,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.output",
+                "action_handle": 536870952,
+                "table_name": "next_hashed",
+                "next_table": 1,
+                "next_table_full": 162,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 64,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.set_vlan_output",
+                "action_handle": 536870953,
+                "table_name": "next_hashed",
+                "next_table": 2,
+                "next_table_full": 162,
+                "vliw_instruction": 2,
+                "vliw_instruction_full": 66,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.l3_routing",
+                "action_handle": 536870954,
+                "table_name": "next_hashed",
+                "next_table": 3,
+                "next_table_full": 162,
+                "vliw_instruction": 3,
+                "vliw_instruction_full": 68,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.mpls_routing_v4",
+                "action_handle": 536870955,
+                "table_name": "next_hashed",
+                "next_table": 4,
+                "next_table_full": 162,
+                "vliw_instruction": 4,
+                "vliw_instruction_full": 70,
+                "immediate_fields": [
+                  {
+                    "param_name": "constant_0",
+                    "param_type": "constant",
+                    "const_value": 0,
+                    "param_shift": 0,
+                    "dest_start": 1,
+                    "dest_width": 3
+                  },
+                  {
+                    "param_name": "constant_1",
+                    "param_type": "constant",
+                    "const_value": 1,
+                    "param_shift": 0,
+                    "dest_start": 0,
+                    "dest_width": 1
+                  },
+                  {
+                    "param_name": "label",
+                    "param_type": "parameter",
+                    "param_shift": 0,
+                    "dest_start": 4,
+                    "dest_width": 4
+                  }
+                ]
+              }
+            ],
+            "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": 9,
+                "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": 3,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 8,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 3,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 12,
+                            "field_name": "version",
+                            "match_mode": "s1q0"
+                          },
+                          {
+                            "field_name": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 34,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 16,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 11,
+                            "field_name": "--padding_11_11--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 32,
+                            "field_name": "--padding_32_33--",
+                            "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": 40,
+                            "field_name": "--padding_40_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": 9,
+                "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": 3,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 8,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 3,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 12,
+                            "field_name": "version",
+                            "match_mode": "s1q0"
+                          },
+                          {
+                            "field_name": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 34,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 16,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 11,
+                            "field_name": "--padding_11_11--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 32,
+                            "field_name": "--padding_32_33--",
+                            "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": 40,
+                            "field_name": "--padding_40_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": 9,
+                "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": 3,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 8,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 3,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 12,
+                            "field_name": "version",
+                            "match_mode": "s1q0"
+                          },
+                          {
+                            "field_name": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 34,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 16,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 11,
+                            "field_name": "--padding_11_11--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 32,
+                            "field_name": "--padding_32_33--",
+                            "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": 40,
+                            "field_name": "--padding_40_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": 536870956,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "next.output",
+          "handle": 536870952,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            }
+          ]
+        },
+        {
+          "name": "next.set_vlan_output",
+          "handle": 536870953,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "new_vlan_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 12
+            },
+            {
+              "name": "port_num",
+              "start_bit": 12,
+              "position": 1,
+              "bit_width": 9
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.vlan_id" },
+              "src": [
+                { "type": "action_param", "name": "new_vlan_id" },
+                { "type": "phv", "name": "H3" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "fabric_metadata.pop_vlan_at_egress" },
+              "src": [
+                { "type": "immmediate", "name": "0" },
+                { "type": "phv", "name": "B14" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            }
+          ]
+        },
+        {
+          "name": "next.l3_routing",
+          "handle": 536870954,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 }
+          ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            }
+          ]
+        },
+        {
+          "name": "next.mpls_routing_v4",
+          "handle": 536870955,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 },
+            {
+              "name": "label",
+              "start_bit": 105,
+              "position": 3,
+              "bit_width": 20
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "H45" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "34887" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.label.4-19" },
+              "src": [ { "type": "action_param", "name": "label.4-19" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B6" },
+              "src": [ { "type": "immediate", "name": "$data0" } ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108874,
+      "name": "next.simple_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 9,
+          "size": 4096,
+          "stage_table_type": "statistics",
+          "logical_table_id": 0,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 78 ], "vpns": [ 0 ] },
+              { "memory_units": [ 79 ], "vpns": [ 1 ] },
+              { "memory_units": [ 80 ], "vpns": [ 2 ] }
+            ],
+            "spare_bank_memory_unit": 80
+          },
+          "stats_alu_index": 3
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 33554435,
+      "name": "next_simple$action",
+      "table_type": "action",
+      "size": 3072,
+      "stage_tables": [
+        {
+          "stage_number": 9,
+          "size": 3072,
+          "stage_table_type": "action_data",
+          "logical_table_id": 0,
+          "pack_format": [
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 128,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_127--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870956
+            },
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 9,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 48,
+                      "field_name": "port_num"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 48,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_47--"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 71,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 57,
+                      "field_name": "--padding_57_127--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870952
+            },
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 9,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 32,
+                      "field_name": "port_num"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 12,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 48,
+                      "field_name": "new_vlan_id"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_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": 68,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 60,
+                      "field_name": "--padding_60_127--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870953
+            },
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 9,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 16,
+                      "field_name": "port_num"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 32,
+                      "field_name": "dmac"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 48,
+                      "field_name": "smac"
+                    },
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "dmac"
+                    },
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 96,
+                      "field_name": "smac"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_15--"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 7,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 25,
+                      "field_name": "--padding_25_31--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870954
+            },
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 9,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 0,
+                      "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": 16,
+                      "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": 32,
+                      "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": 48,
+                      "field_name": "smac"
+                    },
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "dmac"
+                    },
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 96,
+                      "field_name": "smac"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 7,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 9,
+                      "field_name": "--padding_9_15--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870955
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 90 ], "vpns": [ 0 ] },
+              { "memory_units": [ 91 ], "vpns": [ 1 ] },
+              { "memory_units": [ 92 ], "vpns": [ 2 ] }
+            ],
+            "spare_bank_memory_unit": 92
+          }
+        }
+      ],
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870956,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "next.output",
+          "handle": 536870952,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            }
+          ]
+        },
+        {
+          "name": "next.set_vlan_output",
+          "handle": 536870953,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "new_vlan_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 12
+            },
+            {
+              "name": "port_num",
+              "start_bit": 12,
+              "position": 1,
+              "bit_width": 9
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.vlan_id" },
+              "src": [
+                { "type": "action_param", "name": "new_vlan_id" },
+                { "type": "phv", "name": "H3" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "fabric_metadata.pop_vlan_at_egress" },
+              "src": [
+                { "type": "immmediate", "name": "0" },
+                { "type": "phv", "name": "B14" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            }
+          ]
+        },
+        {
+          "name": "next.l3_routing",
+          "handle": 536870954,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 }
+          ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            }
+          ]
+        },
+        {
+          "name": "next.mpls_routing_v4",
+          "handle": 536870955,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 },
+            {
+              "name": "label",
+              "start_bit": 105,
+              "position": 3,
+              "bit_width": 20
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "H45" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "34887" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.label.4-19" },
+              "src": [ { "type": "action_param", "name": "label.4-19" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B6" },
+              "src": [ { "type": "immediate", "name": "$data0" } ]
+            }
+          ]
+        }
+      ],
+      "how_referenced": "direct"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777244,
+      "name": "tbl_act_8",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 10,
+            "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": [ 0 ],
+            "action_format": [
+              {
+                "action_name": "act_8",
+                "action_handle": 536870957,
+                "table_name": "next_hashed",
+                "next_table": 0,
+                "next_table_full": 162,
+                "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_8",
+          "handle": 536870957,
+          "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": "DirectAluPrimitive",
+              "operation": "add",
+              "dest": { "type": "phv", "name": "ipv4.ttl" },
+              "src": [
+                { "type": "immmediate", "name": "255" },
+                { "type": "phv", "name": "B8" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870957,
+      "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": 16777245,
+      "name": "next.hashed",
+      "table_type": "match",
+      "size": 3072,
+      "action_data_table_refs": [
+        {
+          "how_referenced": "indirect",
+          "handle": 33554436,
+          "name": "next.ecmp_selector"
+        }
+      ],
+      "selection_table_refs": [
+        {
+          "how_referenced": "indirect",
+          "handle": 50331649,
+          "name": "next.ecmp_selector"
+        }
+      ],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108875,
+          "name": "next.hashed_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "default_selector_mask": 0,
+      "default_selector_value": 0,
+      "default_action_handle": 536870961,
+      "action_profile": "next.ecmp_selector",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "fabric_metadata.next_id",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "next_id"
+        }
+      ],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 10,
+            "size": 3072,
+            "stage_table_type": "hash_match",
+            "logical_table_id": 2,
+            "has_attached_gateway": false,
+            "hash_functions": [
+              {
+                "hash_bits": [
+                  {
+                    "hash_bit": 0,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 1,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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"
+                      },
+                      {
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 2,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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_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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 3,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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"
+                      },
+                      {
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 4,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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_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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 5,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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": 31,
+                        "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_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 6,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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_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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 7,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "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": 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": 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_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 8,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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": 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_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 9,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 10,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "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_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 11,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 12,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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_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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 13,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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"
+                      },
+                      {
+                        "field_bit": 17,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 14,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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"
+                      },
+                      {
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 15,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 3,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 16,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 12,
+                        "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_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": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 17,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 17,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 18,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "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_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 19,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 19,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 20,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "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_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 21,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 22,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 23,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 24,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 2,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "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_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": 3,
+                        "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": 19,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 20,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 26,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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"
+                      },
+                      {
+                        "field_bit": 17,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 27,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "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_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 28,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "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_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 29,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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": 7,
+                        "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": 22,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "action_format": [
+              {
+                "action_name": "NoAction",
+                "action_handle": 536870961,
+                "table_name": "tbl_act_26",
+                "next_table": 0,
+                "next_table_full": 176,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 67,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.l3_routing",
+                "action_handle": 536870958,
+                "table_name": "tbl_act_26",
+                "next_table": 0,
+                "next_table_full": 176,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 65,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.mpls_routing_v4",
+                "action_handle": 536870959,
+                "table_name": "tbl_act_26",
+                "next_table": 0,
+                "next_table_full": 176,
+                "vliw_instruction": 2,
+                "vliw_instruction_full": 66,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.mpls_routing_v6",
+                "action_handle": 536870960,
+                "table_name": "tbl_act_26",
+                "next_table": 0,
+                "next_table_full": 176,
+                "vliw_instruction": 3,
+                "vliw_instruction_full": 68,
+                "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": 10,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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"
+                          },
+                          {
+                            "start_bit": 7,
+                            "enable_pfe": true,
+                            "field_width": 10,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "sel_ptr",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "meter_addr",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 5,
+                            "enable_pfe": false,
+                            "field_width": 11,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "adt_ptr",
+                            "lsb_mem_word_offset": 13,
+                            "field_name": "action_addr",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "field_name": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 42,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 32,
+                            "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": 40,
+                            "field_name": "--padding_40_41--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 64,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 48,
+                            "field_name": "--padding_48_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": 10,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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"
+                          },
+                          {
+                            "start_bit": 7,
+                            "enable_pfe": true,
+                            "field_width": 10,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "sel_ptr",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "meter_addr",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 5,
+                            "enable_pfe": false,
+                            "field_width": 11,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "adt_ptr",
+                            "lsb_mem_word_offset": 13,
+                            "field_name": "action_addr",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "field_name": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 42,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 32,
+                            "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": 40,
+                            "field_name": "--padding_40_41--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 64,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 48,
+                            "field_name": "--padding_48_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": 10,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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"
+                          },
+                          {
+                            "start_bit": 7,
+                            "enable_pfe": true,
+                            "field_width": 10,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "sel_ptr",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "meter_addr",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 5,
+                            "enable_pfe": false,
+                            "field_width": 11,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "adt_ptr",
+                            "lsb_mem_word_offset": 13,
+                            "field_name": "action_addr",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "field_name": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 42,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 32,
+                            "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": 40,
+                            "field_name": "--padding_40_41--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 64,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 48,
+                            "field_name": "--padding_48_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": 536870961,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "next.l3_routing",
+          "handle": 536870958,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 }
+          ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            }
+          ]
+        },
+        {
+          "name": "next.mpls_routing_v4",
+          "handle": 536870959,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 },
+            {
+              "name": "label",
+              "start_bit": 105,
+              "position": 3,
+              "bit_width": 20
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "H45" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "34887" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.label.4-19" },
+              "src": [ { "type": "action_param", "name": "label.4-19" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B6" },
+              "src": [ { "type": "action_param", "name": "$data0" } ]
+            }
+          ]
+        },
+        {
+          "name": "next.mpls_routing_v6",
+          "handle": 536870960,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 },
+            {
+              "name": "label",
+              "start_bit": 105,
+              "position": 3,
+              "bit_width": 20
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "H45" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "34887" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.label.4-19" },
+              "src": [ { "type": "action_param", "name": "label.4-19" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B6" },
+              "src": [ { "type": "action_param", "name": "$data0" } ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 50331649,
+      "name": "next.ecmp_selector",
+      "table_type": "selection",
+      "size": 1024,
+      "selection_type": "fair",
+      "how_referenced": "indirect",
+      "max_port_pool_size": 120,
+      "bound_to_action_data_table_handle": 33554436,
+      "stage_tables": [
+        {
+          "stage_number": 10,
+          "size": 1024,
+          "stage_table_type": "selection",
+          "logical_table_id": 2,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [ { "memory_units": [ 90 ], "vpns": [ 0 ] } ],
+            "spare_bank_memory_unit": 91
+          },
+          "meter_alu_index": 3
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 33554436,
+      "name": "next.ecmp_selector",
+      "table_type": "action",
+      "size": 64,
+      "stage_tables": [
+        {
+          "stage_number": 10,
+          "size": 262144,
+          "stage_table_type": "action_data",
+          "logical_table_id": 2,
+          "pack_format": [
+            {
+              "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": 256,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 1,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870961
+            },
+            {
+              "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": 9,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 48,
+                      "field_name": "port_num"
+                    },
+                    {
+                      "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": 48,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_47--"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 7,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 57,
+                      "field_name": "--padding_57_63--"
+                    },
+                    {
+                      "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": 536870958
+            },
+            {
+              "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": 536870959
+            },
+            {
+              "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": 536870960
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [ { "memory_units": [ 89, 92 ], "vpns": [ 0 ] } ],
+            "spare_bank_memory_unit": [ 92, 89 ]
+          }
+        }
+      ],
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870961,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "next.l3_routing",
+          "handle": 536870958,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 }
+          ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            }
+          ]
+        },
+        {
+          "name": "next.mpls_routing_v4",
+          "handle": 536870959,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 },
+            {
+              "name": "label",
+              "start_bit": 105,
+              "position": 3,
+              "bit_width": 20
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "H45" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "34887" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.label.4-19" },
+              "src": [ { "type": "action_param", "name": "label.4-19" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B6" },
+              "src": [ { "type": "action_param", "name": "$data0" } ]
+            }
+          ]
+        },
+        {
+          "name": "next.mpls_routing_v6",
+          "handle": 536870960,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 },
+            {
+              "name": "label",
+              "start_bit": 105,
+              "position": 3,
+              "bit_width": 20
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "H45" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "34887" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.label.4-19" },
+              "src": [ { "type": "action_param", "name": "label.4-19" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B6" },
+              "src": [ { "type": "action_param", "name": "$data0" } ]
+            }
+          ]
+        }
+      ],
+      "how_referenced": "indirect"
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108875,
+      "name": "next.hashed_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 10,
+          "size": 4096,
+          "stage_table_type": "statistics",
+          "logical_table_id": 2,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 78 ], "vpns": [ 0 ] },
+              { "memory_units": [ 79 ], "vpns": [ 1 ] },
+              { "memory_units": [ 80 ], "vpns": [ 2 ] }
+            ],
+            "spare_bank_memory_unit": 80
+          },
+          "stats_alu_index": 3
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777246,
+      "name": "tbl_act_11",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 11,
+            "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": 0,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "result_physical_buses": [ 1 ],
+            "action_format": [
+              {
+                "action_name": "act_11",
+                "action_handle": 536870962,
+                "table_name": "tbl_act_24",
+                "next_table": 0,
+                "next_table_full": 177,
+                "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_11",
+          "handle": 536870962,
+          "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": "ethernet.ether_type" },
+              "src": [ { "type": "phv", "name": "H15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "0" },
+                { "type": "phv", "name": "H45" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870962,
+      "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": 16777247,
+      "name": "tbl_act_9",
+      "table_type": "match",
+      "size": 512,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 11,
+            "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": 0,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "result_physical_buses": [ 0 ],
+            "action_format": [
+              {
+                "action_name": "act_9",
+                "action_handle": 536870963,
+                "table_name": "next_broadcast",
+                "next_table": 0,
+                "next_table_full": 178,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 65,
+                "immediate_fields": []
+              }
+            ],
+            "hash_functions": []
+          }
+        ],
+        "match_type": "match_with_no_key",
+        "uses_dynamic_key_masks": false
+      },
+      "actions": [
+        {
+          "name": "act_9",
+          "handle": 536870963,
+          "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": []
+        }
+      ],
+      "default_action_handle": 536870963,
+      "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": true,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "indirect",
+          "handle": 67108876,
+          "name": "port_counters_control.egress_port_counter"
+        }
+      ],
+      "stateful_table_refs": []
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108876,
+      "name": "port_counters_control.egress_port_counter",
+      "table_type": "statistics",
+      "size": 511,
+      "stage_tables": [
+        {
+          "stage_number": 11,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 1,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 54 ], "vpns": [ 0 ] },
+              { "memory_units": [ 55 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 55
+          },
+          "stats_alu_index": 2
+        }
+      ],
+      "how_referenced": "indirect",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777248,
+      "name": "next.broadcast",
+      "table_type": "match",
+      "size": 3072,
+      "action_data_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 33554437,
+          "name": "next_broadcast$action"
+        }
+      ],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108877,
+          "name": "next.broadcast_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "default_action_handle": 536870965,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "fabric_metadata.next_id",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "next_id"
+        }
+      ],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 11,
+            "size": 3072,
+            "stage_table_type": "hash_match",
+            "logical_table_id": 2,
+            "has_attached_gateway": false,
+            "hash_functions": [
+              {
+                "hash_bits": [
+                  {
+                    "hash_bit": 0,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 17,
+                        "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": 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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 1,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 17,
+                        "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": 1,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 2,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 23,
+                        "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": 2,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 3,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 22,
+                        "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": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 4,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 24,
+                        "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": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 5,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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": 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"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 6,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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": 6,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 7,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 22,
+                        "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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 8,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 24,
+                        "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": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 9,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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": 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": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 10,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 17,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "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": 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": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 11,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 17,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 12,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 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": 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": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 13,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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_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": 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": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 14,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 15,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 16,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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"
+                      },
+                      {
+                        "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": 6,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 17,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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": 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": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 18,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 17,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "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": 25,
+                        "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": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 19,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 17,
+                        "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": 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": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 20,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "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"
+                      },
+                      {
+                        "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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 21,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 17,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "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": 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": 1,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 22,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 18,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 19,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "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": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 23,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 20,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "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": 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": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 24,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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": 28,
+                        "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": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 25,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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": 25,
+                        "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": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 26,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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": 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"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 27,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 17,
+                        "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": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 28,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 17,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "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": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 29,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 24,
+                        "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": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "action_format": [
+              {
+                "action_name": "NoAction",
+                "action_handle": 536870965,
+                "table_name": "--END_OF_PIPELINE--",
+                "next_table": 0,
+                "next_table_full": 255,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 65,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.set_mcast_group",
+                "action_handle": 536870964,
+                "table_name": "--END_OF_PIPELINE--",
+                "next_table": 0,
+                "next_table_full": 255,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 66,
+                "immediate_fields": [
+                  {
+                    "param_name": "gid",
+                    "param_type": "parameter",
+                    "param_shift": 0,
+                    "dest_start": 16,
+                    "dest_width": 16
+                  },
+                  {
+                    "param_name": "smac",
+                    "param_type": "parameter",
+                    "param_shift": 0,
+                    "dest_start": 0,
+                    "dest_width": 16
+                  }
+                ]
+              }
+            ],
+            "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": 11,
+                "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 1,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 34,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 48,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 33,
+                            "field_name": "--padding_33_33--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 56,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 56,
+                            "field_name": "--padding_56_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": 11,
+                "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 1,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 34,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 48,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 33,
+                            "field_name": "--padding_33_33--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 56,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 56,
+                            "field_name": "--padding_56_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": 11,
+                "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 1,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 34,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 48,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 33,
+                            "field_name": "--padding_33_33--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 56,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 56,
+                            "field_name": "--padding_56_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": 536870965,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "next.set_mcast_group",
+          "handle": 536870964,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            { "name": "gid", "start_bit": 0, "position": 0, "bit_width": 16 },
+            { "name": "smac", "start_bit": 16, "position": 1, "bit_width": 48 }
+          ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.mcast_grp_a" },
+              "src": [ { "type": "immediate", "name": "gid" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "immediate", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108877,
+      "name": "next.broadcast_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 11,
+          "size": 4096,
+          "stage_table_type": "statistics",
+          "logical_table_id": 2,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 78 ], "vpns": [ 0 ] },
+              { "memory_units": [ 79 ], "vpns": [ 1 ] },
+              { "memory_units": [ 80 ], "vpns": [ 2 ] }
+            ],
+            "spare_bank_memory_unit": 80
+          },
+          "stats_alu_index": 3
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 33554437,
+      "name": "next_broadcast$action",
+      "table_type": "action",
+      "size": 4096,
+      "stage_tables": [
+        {
+          "stage_number": 11,
+          "size": 4096,
+          "stage_table_type": "action_data",
+          "logical_table_id": 2,
+          "pack_format": [
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 4,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 3,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 96,
+                      "field_name": "--padding_0_31--"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 2,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "--padding_0_31--"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 1,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 32,
+                      "field_name": "--padding_0_31--"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_31--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870965
+            },
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 4,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 3,
+                  "fields": [
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 96,
+                      "field_name": "smac"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 2,
+                  "fields": [
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "smac"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 1,
+                  "fields": [
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 32,
+                      "field_name": "smac"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "smac"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870964
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [ { "memory_units": [ 90 ], "vpns": [ 0 ] } ],
+            "spare_bank_memory_unit": 90
+          }
+        }
+      ],
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870965,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "next.set_mcast_group",
+          "handle": 536870964,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            { "name": "gid", "start_bit": 0, "position": 0, "bit_width": 16 },
+            { "name": "smac", "start_bit": 16, "position": 1, "bit_width": 48 }
+          ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.mcast_grp_a" },
+              "src": [ { "type": "immediate", "name": "gid" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "immediate", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            }
+          ]
+        }
+      ],
+      "how_referenced": "direct"
+    }
+  ],
+  "configuration_cache": [
+    {
+      "fully_qualified_name": "pmarb.ebp18_reg.ebp_reg[0].epb_prsr_port_regs.chnl_ctrl[0]",
+      "name": "parser0_chnl_ctrl_0",
+      "value": "00a41fff"
+    },
+    {
+      "fully_qualified_name": "pmarb.ebp18_reg.ebp_reg[0].epb_prsr_port_regs.chnl_ctrl[1]",
+      "name": "parser0_chnl_ctrl_1",
+      "value": "00a41fff"
+    },
+    {
+      "fully_qualified_name": "pmarb.ebp18_reg.ebp_reg[0].epb_prsr_port_regs.chnl_ctrl[2]",
+      "name": "parser0_chnl_ctrl_2",
+      "value": "00a41fff"
+    },
+    {
+      "fully_qualified_name": "pmarb.ebp18_reg.ebp_reg[0].epb_prsr_port_regs.chnl_ctrl[3]",
+      "name": "parser0_chnl_ctrl_3",
+      "value": "00a41fff"
+    },
+    {
+      "fully_qualified_name": "pmarb.ebp18_reg.ebp_reg[0].epb_prsr_port_regs.multi_threading",
+      "name": "parser0_multi_threading",
+      "value": "19522020"
+    },
+    {
+      "fully_qualified_name": "mau[0].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_0_match_input_xbar_din_power_ctl",
+      "value": "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[1].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_1_match_input_xbar_din_power_ctl",
+      "value": "000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[2].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_2_match_input_xbar_din_power_ctl",
+      "value": "0000001000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[3].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_3_match_input_xbar_din_power_ctl",
+      "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": "0000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[5].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_5_match_input_xbar_din_power_ctl",
+      "value": "0000001000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[5].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_5_parity_group_mask",
+      "value": "00000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[6].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_6_match_input_xbar_din_power_ctl",
+      "value": "0000005000000000000000000000000000000000000000400000000000000000000000880000000000000000000000000000000000000029000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[6].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_6_parity_group_mask",
+      "value": "00000001000000000000000c00000000000000020000000000000008000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[7].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_7_match_input_xbar_din_power_ctl",
+      "value": "0000005000000000000000000000000000000040000000200000000000000000000000480000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[7].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_7_parity_group_mask",
+      "value": "00000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[8].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_8_match_input_xbar_din_power_ctl",
+      "value": "000000d20000000000000000000000000000002400000080000000000000000000000088000000010000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[9].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_9_match_input_xbar_din_power_ctl",
+      "value": "0000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[9].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_9_parity_group_mask",
+      "value": "00000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[10].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_10_match_input_xbar_din_power_ctl",
+      "value": "0000001200000002000000000000000000000000000000800000000000000000000000000000000100000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[10].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_10_parity_group_mask",
+      "value": "00000001000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[11].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_11_match_input_xbar_din_power_ctl",
+      "value": "0000000000000002000000000000000000000000000000400000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[11].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_11_parity_group_mask",
+      "value": "00000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/montara/fabric.p4info b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/montara/fabric.p4info
new file mode 100644
index 0000000..cb3e8ff
--- /dev/null
+++ b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/montara/fabric.p4info
@@ -0,0 +1,879 @@
+tables {
+  preamble {
+    id: 33574964
+    name: "spgw_ingress.ue_filter_table"
+    alias: "ue_filter_table"
+  }
+  match_fields {
+    id: 1
+    name: "ipv4.dst_addr"
+    bitwidth: 32
+    match_type: LPM
+  }
+  action_refs {
+    id: 16800567
+  }
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33570382
+    name: "spgw_ingress.s1u_filter_table"
+    alias: "s1u_filter_table"
+  }
+  match_fields {
+    id: 1
+    name: "spgw_meta.s1u_sgw_addr"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16800567
+  }
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33590421
+    name: "spgw_ingress.dl_sess_lookup"
+    alias: "dl_sess_lookup"
+  }
+  match_fields {
+    id: 1
+    name: "ipv4.dst_addr"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16784665
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33594626
+    name: "spgw_ingress.ue_cdr_table"
+    alias: "ue_cdr_table"
+  }
+  match_fields {
+    id: 1
+    name: "ipv4.dst_addr"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16800269
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 302053240
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33578399
+    name: "filtering.ingress_port_vlan"
+    alias: "ingress_port_vlan"
+  }
+  match_fields {
+    id: 1
+    name: "standard_metadata.ingress_port"
+    bitwidth: 9
+    match_type: EXACT
+  }
+  match_fields {
+    id: 2
+    name: "hdr.vlan_tag.is_valid"
+    bitwidth: 1
+    match_type: EXACT
+  }
+  match_fields {
+    id: 3
+    name: "hdr.vlan_tag.vlan_id"
+    bitwidth: 12
+    match_type: TERNARY
+  }
+  action_refs {
+    id: 16794505
+  }
+  action_refs {
+    id: 16782367
+  }
+  action_refs {
+    id: 16819938
+  }
+  action_refs {
+    id: 16826365
+  }
+  const_default_action_id: 16819938
+  direct_resource_ids: 302015144
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33619540
+    name: "filtering.fwd_classifier"
+    alias: "fwd_classifier"
+  }
+  match_fields {
+    id: 1
+    name: "standard_metadata.ingress_port"
+    bitwidth: 9
+    match_type: EXACT
+  }
+  match_fields {
+    id: 2
+    name: "hdr.ethernet.dst_addr"
+    bitwidth: 48
+    match_type: EXACT
+  }
+  match_fields {
+    id: 3
+    name: "fabric_metadata.original_ether_type"
+    bitwidth: 16
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16838162
+  }
+  const_default_action_id: 16838162
+  direct_resource_ids: 302033694
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33569146
+    name: "forwarding.bridging"
+    alias: "bridging"
+  }
+  match_fields {
+    id: 1
+    name: "hdr.vlan_tag.vlan_id"
+    bitwidth: 12
+    match_type: EXACT
+  }
+  match_fields {
+    id: 2
+    name: "hdr.ethernet.dst_addr"
+    bitwidth: 48
+    match_type: TERNARY
+  }
+  action_refs {
+    id: 16829931
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 302047449
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33565386
+    name: "forwarding.mpls"
+    alias: "mpls"
+  }
+  match_fields {
+    id: 1
+    name: "hdr.mpls.label"
+    bitwidth: 20
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16842717
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 302001577
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33589684
+    name: "forwarding.unicast_v4"
+    alias: "unicast_v4"
+  }
+  match_fields {
+    id: 1
+    name: "hdr.ipv4.dst_addr"
+    bitwidth: 32
+    match_type: LPM
+  }
+  action_refs {
+    id: 16829931
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 302038636
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33615204
+    name: "forwarding.multicast_v4"
+    alias: "multicast_v4"
+  }
+  match_fields {
+    id: 1
+    name: "hdr.vlan_tag.vlan_id"
+    bitwidth: 12
+    match_type: EXACT
+  }
+  match_fields {
+    id: 2
+    name: "hdr.ipv4.dst_addr"
+    bitwidth: 32
+    match_type: LPM
+  }
+  action_refs {
+    id: 16829931
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 302009236
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33587782
+    name: "forwarding.acl"
+    alias: "acl"
+  }
+  match_fields {
+    id: 1
+    name: "standard_metadata.ingress_port"
+    bitwidth: 9
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 2
+    name: "fabric_metadata.ip_proto"
+    bitwidth: 8
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 3
+    name: "fabric_metadata.l4_src_port"
+    bitwidth: 16
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 4
+    name: "fabric_metadata.l4_dst_port"
+    bitwidth: 16
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 5
+    name: "fabric_metadata.original_ether_type"
+    bitwidth: 16
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 6
+    name: "hdr.ethernet.dst_addr"
+    bitwidth: 48
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 7
+    name: "hdr.ethernet.src_addr"
+    bitwidth: 48
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 8
+    name: "hdr.vlan_tag.vlan_id"
+    bitwidth: 12
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 9
+    name: "hdr.ipv4.src_addr"
+    bitwidth: 32
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 10
+    name: "hdr.ipv4.dst_addr"
+    bitwidth: 32
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 11
+    name: "hdr.icmp.icmp_type"
+    bitwidth: 8
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 12
+    name: "hdr.icmp.icmp_code"
+    bitwidth: 8
+    match_type: TERNARY
+  }
+  action_refs {
+    id: 16829931
+  }
+  action_refs {
+    id: 16805452
+  }
+  action_refs {
+    id: 16815978
+  }
+  action_refs {
+    id: 16819938
+  }
+  const_default_action_id: 16819938
+  direct_resource_ids: 302000008
+  size: 256
+}
+tables {
+  preamble {
+    id: 33615740
+    name: "next.simple"
+    alias: "simple"
+  }
+  match_fields {
+    id: 1
+    name: "fabric_metadata.next_id"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16818315
+  }
+  action_refs {
+    id: 16837690
+  }
+  action_refs {
+    id: 16804266
+  }
+  action_refs {
+    id: 16841192
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 301991179
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33569488
+    name: "next.hashed"
+    alias: "hashed"
+  }
+  match_fields {
+    id: 1
+    name: "fabric_metadata.next_id"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16804266
+  }
+  action_refs {
+    id: 16841192
+  }
+  action_refs {
+    id: 16788519
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  implementation_id: 285225078
+  direct_resource_ids: 301993193
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33608545
+    name: "next.broadcast"
+    alias: "broadcast"
+  }
+  match_fields {
+    id: 1
+    name: "fabric_metadata.next_id"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16778974
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 301995093
+  size: 1024
+}
+actions {
+  preamble {
+    id: 16800567
+    name: "NoAction"
+    alias: "NoAction"
+  }
+}
+actions {
+  preamble {
+    id: 16819938
+    name: "nop"
+    alias: "nop"
+  }
+}
+actions {
+  preamble {
+    id: 16840488
+    name: "spgw_ingress.drop_now"
+    alias: "drop_now"
+  }
+}
+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"
+  }
+  params {
+    id: 1
+    name: "teid"
+    bitwidth: 32
+  }
+  params {
+    id: 2
+    name: "s1u_enb_addr"
+    bitwidth: 32
+  }
+  params {
+    id: 3
+    name: "s1u_sgw_addr"
+    bitwidth: 32
+  }
+}
+actions {
+  preamble {
+    id: 16800269
+    name: "spgw_ingress.update_ue_cdr"
+    alias: "update_ue_cdr"
+  }
+}
+actions {
+  preamble {
+    id: 16826365
+    name: "filtering.drop"
+    alias: "filtering.drop"
+  }
+}
+actions {
+  preamble {
+    id: 16782367
+    name: "filtering.set_vlan"
+    alias: "set_vlan"
+  }
+  params {
+    id: 1
+    name: "new_vlan_id"
+    bitwidth: 12
+  }
+}
+actions {
+  preamble {
+    id: 16794505
+    name: "filtering.push_internal_vlan"
+    alias: "push_internal_vlan"
+  }
+  params {
+    id: 1
+    name: "new_vlan_id"
+    bitwidth: 12
+  }
+}
+actions {
+  preamble {
+    id: 16838162
+    name: "filtering.set_forwarding_type"
+    alias: "set_forwarding_type"
+  }
+  params {
+    id: 1
+    name: "fwd_type"
+    bitwidth: 3
+  }
+}
+actions {
+  preamble {
+    id: 16815978
+    name: "forwarding.drop"
+    alias: "forwarding.drop"
+  }
+}
+actions {
+  preamble {
+    id: 16829931
+    name: "forwarding.set_next_id"
+    alias: "set_next_id"
+  }
+  params {
+    id: 1
+    name: "next_id"
+    bitwidth: 32
+  }
+}
+actions {
+  preamble {
+    id: 16842717
+    name: "forwarding.pop_mpls_and_next"
+    alias: "pop_mpls_and_next"
+  }
+  params {
+    id: 1
+    name: "next_id"
+    bitwidth: 32
+  }
+}
+actions {
+  preamble {
+    id: 16805452
+    name: "forwarding.duplicate_to_controller"
+    alias: "duplicate_to_controller"
+  }
+}
+actions {
+  preamble {
+    id: 16818315
+    name: "next.output"
+    alias: "output"
+  }
+  params {
+    id: 1
+    name: "port_num"
+    bitwidth: 9
+  }
+}
+actions {
+  preamble {
+    id: 16837690
+    name: "next.set_vlan_output"
+    alias: "set_vlan_output"
+  }
+  params {
+    id: 1
+    name: "new_vlan_id"
+    bitwidth: 12
+  }
+  params {
+    id: 2
+    name: "port_num"
+    bitwidth: 9
+  }
+}
+actions {
+  preamble {
+    id: 16804266
+    name: "next.l3_routing"
+    alias: "l3_routing"
+  }
+  params {
+    id: 1
+    name: "port_num"
+    bitwidth: 9
+  }
+  params {
+    id: 2
+    name: "smac"
+    bitwidth: 48
+  }
+  params {
+    id: 3
+    name: "dmac"
+    bitwidth: 48
+  }
+}
+actions {
+  preamble {
+    id: 16778974
+    name: "next.set_mcast_group"
+    alias: "set_mcast_group"
+  }
+  params {
+    id: 1
+    name: "gid"
+    bitwidth: 16
+  }
+  params {
+    id: 2
+    name: "smac"
+    bitwidth: 48
+  }
+}
+actions {
+  preamble {
+    id: 16841192
+    name: "next.mpls_routing_v4"
+    alias: "mpls_routing_v4"
+  }
+  params {
+    id: 1
+    name: "port_num"
+    bitwidth: 9
+  }
+  params {
+    id: 2
+    name: "smac"
+    bitwidth: 48
+  }
+  params {
+    id: 3
+    name: "dmac"
+    bitwidth: 48
+  }
+  params {
+    id: 4
+    name: "label"
+    bitwidth: 20
+  }
+}
+actions {
+  preamble {
+    id: 16788519
+    name: "next.mpls_routing_v6"
+    alias: "mpls_routing_v6"
+  }
+  params {
+    id: 1
+    name: "port_num"
+    bitwidth: 9
+  }
+  params {
+    id: 2
+    name: "smac"
+    bitwidth: 48
+  }
+  params {
+    id: 3
+    name: "dmac"
+    bitwidth: 48
+  }
+  params {
+    id: 4
+    name: "label"
+    bitwidth: 20
+  }
+}
+actions {
+  preamble {
+    id: 16839213
+    name: "spgw_egress.gtpu_encap"
+    alias: "gtpu_encap"
+  }
+}
+action_profiles {
+  preamble {
+    id: 285225078
+    name: "next.ecmp_selector"
+    alias: "ecmp_selector"
+  }
+  table_ids: 33569488
+  with_selector: true
+  size: 64
+}
+counters {
+  preamble {
+    id: 302025528
+    name: "port_counters_control.egress_port_counter"
+    alias: "egress_port_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  size: 511
+}
+counters {
+  preamble {
+    id: 301999025
+    name: "port_counters_control.ingress_port_counter"
+    alias: "ingress_port_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  size: 511
+}
+direct_counters {
+  preamble {
+    id: 302053240
+    name: "spgw_ingress.ue_counter"
+    alias: "ue_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33594626
+}
+direct_counters {
+  preamble {
+    id: 302015144
+    name: "filtering.ingress_port_vlan_counter"
+    alias: "ingress_port_vlan_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33578399
+}
+direct_counters {
+  preamble {
+    id: 302033694
+    name: "filtering.fwd_classifier_counter"
+    alias: "fwd_classifier_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33619540
+}
+direct_counters {
+  preamble {
+    id: 302047449
+    name: "forwarding.bridging_counter"
+    alias: "bridging_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33569146
+}
+direct_counters {
+  preamble {
+    id: 302001577
+    name: "forwarding.mpls_counter"
+    alias: "mpls_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33565386
+}
+direct_counters {
+  preamble {
+    id: 302038636
+    name: "forwarding.unicast_v4_counter"
+    alias: "unicast_v4_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33589684
+}
+direct_counters {
+  preamble {
+    id: 302009236
+    name: "forwarding.multicast_v4_counter"
+    alias: "multicast_v4_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33615204
+}
+direct_counters {
+  preamble {
+    id: 302000008
+    name: "forwarding.acl_counter"
+    alias: "acl_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33587782
+}
+direct_counters {
+  preamble {
+    id: 301991179
+    name: "next.simple_counter"
+    alias: "simple_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33615740
+}
+direct_counters {
+  preamble {
+    id: 301993193
+    name: "next.hashed_counter"
+    alias: "hashed_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33569488
+}
+direct_counters {
+  preamble {
+    id: 301995093
+    name: "next.broadcast_counter"
+    alias: "broadcast_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33608545
+}
+controller_packet_metadata {
+  preamble {
+    id: 2868941301
+    name: "packet_in"
+    annotations: "@controller_header(\"packet_in\")"
+  }
+  metadata {
+    id: 1
+    name: "ingress_port"
+    bitwidth: 9
+  }
+  metadata {
+    id: 2
+    name: "_pad"
+    bitwidth: 7
+  }
+}
+controller_packet_metadata {
+  preamble {
+    id: 2868916615
+    name: "packet_out"
+    annotations: "@not_extracted_in_egress()"
+    annotations: "@controller_header(\"packet_out\")"
+  }
+  metadata {
+    id: 1
+    name: "egress_port"
+    bitwidth: 9
+  }
+  metadata {
+    id: 2
+    name: "_pad"
+    bitwidth: 7
+  }
+}
diff --git a/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/montara/tofino.bin b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/montara/tofino.bin
new file mode 100644
index 0000000..089015d
--- /dev/null
+++ 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
new file mode 100644
index 0000000..8ea3cca
--- /dev/null
+++ b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/mavericks/context.json
@@ -0,0 +1,41703 @@
+{
+  "build_date": "02/15/18 04:16:06",
+  "compiler_version": "6.0.0-alpha.4",
+  "program_name": "main",
+  "learn_quanta": [],
+  "dynamic_hash_calculations": [],
+  "parser": { "ingress": [], "egress": [] },
+  "phv_allocation": [
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 1,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 2,
+          "records": [
+            {
+              "position_offset": 80,
+              "field_name": "ipv4.src_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": 68,
+              "field_name": "ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 44,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 92,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 89,
+              "field_name": "mpls.bos",
+              "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": 67,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 93,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 71,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 40,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": 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": 2,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 41,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 66,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 88,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 94,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "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_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 97,
+                  "header_name": "tcp",
+                  "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": 124,
+                  "header_name": "udp",
+                  "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": 133,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 62,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 26,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 60,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 134,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 140,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 37,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 98,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 3,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 67,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 104,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 131,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 42,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 118,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 127,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 46,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 129,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 122,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 125,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 339,
+          "records": [
+            {
+              "position_offset": 102,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 340,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 80,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 45,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 67,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 73,
+                  "header_name": "packet_in",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 81,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 78,
+                  "header_name": "tcp",
+                  "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": 105,
+                  "header_name": "udp",
+                  "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": 114,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 43,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "ipv4.src_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": 259,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 288,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 57,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 289,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 30,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 71,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 68,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 115,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 121,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 91,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 85,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 108,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 51,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 53,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 55,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 89,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 83,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 101,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 0
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 1,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 2,
+          "records": [
+            {
+              "position_offset": 80,
+              "field_name": "ipv4.src_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": 68,
+              "field_name": "ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 44,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 92,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 89,
+              "field_name": "mpls.bos",
+              "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": 67,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 93,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 71,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 40,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": 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": 2,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 41,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 66,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 88,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 94,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "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_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 97,
+                  "header_name": "tcp",
+                  "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": 124,
+                  "header_name": "udp",
+                  "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": 133,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 62,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 26,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 60,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 134,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 140,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 37,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 98,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 3,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 67,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 104,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 131,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 42,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 118,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 127,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 46,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 129,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 122,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 125,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 339,
+          "records": [
+            {
+              "position_offset": 102,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 340,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 80,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 45,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 67,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 73,
+                  "header_name": "packet_in",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 81,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 78,
+                  "header_name": "tcp",
+                  "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": 105,
+                  "header_name": "udp",
+                  "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": 114,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 43,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "ipv4.src_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": 259,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 288,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 57,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 289,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 30,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 71,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 68,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 115,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 121,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 91,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 85,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 108,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 51,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 53,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 55,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 89,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 83,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 101,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 1
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 1,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 2,
+          "records": [
+            {
+              "position_offset": 80,
+              "field_name": "ipv4.src_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": 68,
+              "field_name": "ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 44,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 92,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 89,
+              "field_name": "mpls.bos",
+              "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": 67,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 93,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 71,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 40,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": 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": 2,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 41,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 66,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 88,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 94,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "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_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 97,
+                  "header_name": "tcp",
+                  "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": 124,
+                  "header_name": "udp",
+                  "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": 133,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 62,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 26,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 60,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 134,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 140,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 37,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 98,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 3,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 67,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 104,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 131,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 42,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 118,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 127,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 46,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 129,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 122,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 125,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 339,
+          "records": [
+            {
+              "position_offset": 102,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 340,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 80,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 45,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 67,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 73,
+                  "header_name": "packet_in",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 81,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 78,
+                  "header_name": "tcp",
+                  "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": 105,
+                  "header_name": "udp",
+                  "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": 114,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 43,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "ipv4.src_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": 259,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 288,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 57,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 289,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 30,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 71,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 68,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 115,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 121,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 91,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 85,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 108,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 51,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 53,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 55,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 89,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 83,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 101,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 2
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 1,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 2,
+          "records": [
+            {
+              "position_offset": 80,
+              "field_name": "ipv4.src_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": 68,
+              "field_name": "ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 44,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 92,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 89,
+              "field_name": "mpls.bos",
+              "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": 67,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 93,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 71,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 40,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": 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": 2,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 41,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 66,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 88,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 94,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "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_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 97,
+                  "header_name": "tcp",
+                  "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": 124,
+                  "header_name": "udp",
+                  "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": 133,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 62,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 26,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 60,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 134,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 140,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 37,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 98,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 3,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 67,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 104,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 131,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 42,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 118,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 127,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 46,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 129,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 122,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 125,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 339,
+          "records": [
+            {
+              "position_offset": 102,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 340,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 80,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 45,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 67,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 73,
+                  "header_name": "packet_in",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 81,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 78,
+                  "header_name": "tcp",
+                  "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": 105,
+                  "header_name": "udp",
+                  "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": 114,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 43,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "ipv4.src_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": 259,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 288,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 57,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 289,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 30,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 71,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 68,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 115,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 121,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 91,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 85,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 108,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 51,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 53,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 55,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 89,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 83,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 101,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 3
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 1,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 2,
+          "records": [
+            {
+              "position_offset": 80,
+              "field_name": "ipv4.src_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": 68,
+              "field_name": "ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 44,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 92,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 89,
+              "field_name": "mpls.bos",
+              "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": 67,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 93,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 71,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 40,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": 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": 2,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 41,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 66,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 88,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 94,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "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_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 97,
+                  "header_name": "tcp",
+                  "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": 124,
+                  "header_name": "udp",
+                  "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": 133,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 62,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 26,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 60,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 134,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 140,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 37,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 98,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 3,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 67,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 104,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 131,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 42,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 118,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 127,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 46,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 129,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 122,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 125,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 339,
+          "records": [
+            {
+              "position_offset": 102,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 340,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 80,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 45,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 67,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 73,
+                  "header_name": "packet_in",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 81,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 78,
+                  "header_name": "tcp",
+                  "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": 105,
+                  "header_name": "udp",
+                  "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": 114,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 43,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "ipv4.src_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": 259,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 288,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 57,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 289,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 30,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 71,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 68,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 115,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 121,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 91,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 85,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 108,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 51,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 53,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 55,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 89,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 83,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 101,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 4
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 1,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 2,
+          "records": [
+            {
+              "position_offset": 80,
+              "field_name": "ipv4.src_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": 68,
+              "field_name": "ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 44,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 92,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 89,
+              "field_name": "mpls.bos",
+              "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": 67,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 93,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 71,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 40,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": 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": 2,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 41,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 66,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 88,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 94,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "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_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 97,
+                  "header_name": "tcp",
+                  "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": 124,
+                  "header_name": "udp",
+                  "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": 133,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 62,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 26,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 60,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 134,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 140,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 37,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 98,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 3,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 67,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 104,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 131,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 42,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 118,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 127,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 46,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 129,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 122,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 125,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 339,
+          "records": [
+            {
+              "position_offset": 102,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 340,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 80,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 45,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 67,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 73,
+                  "header_name": "packet_in",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 81,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 78,
+                  "header_name": "tcp",
+                  "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": 105,
+                  "header_name": "udp",
+                  "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": 114,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 43,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "ipv4.src_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": 259,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 288,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 57,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 289,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 30,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 71,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 68,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 115,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 121,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 91,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 85,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 108,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 51,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 53,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 55,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 89,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 83,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 101,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 5
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 1,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 2,
+          "records": [
+            {
+              "position_offset": 80,
+              "field_name": "ipv4.src_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": 68,
+              "field_name": "ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 44,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 92,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 89,
+              "field_name": "mpls.bos",
+              "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": 67,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 93,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 71,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 40,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": 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": 2,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 41,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 66,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 88,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 94,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "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_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 97,
+                  "header_name": "tcp",
+                  "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": 124,
+                  "header_name": "udp",
+                  "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": 133,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 62,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 26,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 60,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 134,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 140,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 37,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 98,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 3,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 67,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 104,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 131,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 42,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 118,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 127,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 46,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 129,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 122,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 125,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 339,
+          "records": [
+            {
+              "position_offset": 102,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 340,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 80,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 45,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 67,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 73,
+                  "header_name": "packet_in",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 81,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 78,
+                  "header_name": "tcp",
+                  "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": 105,
+                  "header_name": "udp",
+                  "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": 114,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 43,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "ipv4.src_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": 259,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 288,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 57,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 289,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 30,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 71,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 68,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 115,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 121,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 91,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 85,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 108,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 51,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 53,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 55,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 89,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 83,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 101,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 6
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 1,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 2,
+          "records": [
+            {
+              "position_offset": 80,
+              "field_name": "ipv4.src_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": 68,
+              "field_name": "ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 44,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 92,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 89,
+              "field_name": "mpls.bos",
+              "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": 67,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 93,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 71,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 40,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": 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": 2,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 41,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 66,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 88,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 94,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "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_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 97,
+                  "header_name": "tcp",
+                  "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": 124,
+                  "header_name": "udp",
+                  "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": 133,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 62,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 26,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 60,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 134,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 140,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 37,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 98,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 3,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 67,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 104,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 131,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 42,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 118,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 127,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 46,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 129,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 122,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 125,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 339,
+          "records": [
+            {
+              "position_offset": 102,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 340,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 80,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 45,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 67,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 73,
+                  "header_name": "packet_in",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 81,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 78,
+                  "header_name": "tcp",
+                  "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": 105,
+                  "header_name": "udp",
+                  "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": 114,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 43,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "ipv4.src_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": 259,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 288,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 57,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 289,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 30,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 71,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 68,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 115,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 121,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 91,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 85,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 108,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 51,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 53,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 55,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 89,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 83,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 101,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 7
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 1,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 2,
+          "records": [
+            {
+              "position_offset": 80,
+              "field_name": "ipv4.src_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": 68,
+              "field_name": "ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 44,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 92,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 89,
+              "field_name": "mpls.bos",
+              "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": 67,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 93,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 71,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 40,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": 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": 2,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 41,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 66,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 88,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 94,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "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_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 97,
+                  "header_name": "tcp",
+                  "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": 124,
+                  "header_name": "udp",
+                  "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": 133,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 62,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 26,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 60,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 134,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 140,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 37,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 98,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 3,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 67,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 104,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 131,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 42,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 118,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 127,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 46,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 129,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 122,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 125,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 339,
+          "records": [
+            {
+              "position_offset": 102,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 340,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 80,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 45,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 67,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 73,
+                  "header_name": "packet_in",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 81,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 78,
+                  "header_name": "tcp",
+                  "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": 105,
+                  "header_name": "udp",
+                  "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": 114,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 43,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "ipv4.src_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": 259,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 288,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 57,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 289,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 30,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 71,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 68,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 115,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 121,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 91,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 85,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 108,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 51,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 53,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 55,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 89,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 83,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 101,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 8
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 1,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 2,
+          "records": [
+            {
+              "position_offset": 80,
+              "field_name": "ipv4.src_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": 68,
+              "field_name": "ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 44,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 92,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 89,
+              "field_name": "mpls.bos",
+              "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": 67,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 93,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 71,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 40,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": 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": 2,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 41,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 66,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 88,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 94,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "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_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 97,
+                  "header_name": "tcp",
+                  "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": 124,
+                  "header_name": "udp",
+                  "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": 133,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 62,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 26,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 60,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 134,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 140,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 37,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 98,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 3,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 67,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 104,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 131,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 42,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 118,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 127,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 46,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 129,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 122,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 125,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 339,
+          "records": [
+            {
+              "position_offset": 102,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 340,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 80,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 45,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 67,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 73,
+                  "header_name": "packet_in",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 81,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 78,
+                  "header_name": "tcp",
+                  "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": 105,
+                  "header_name": "udp",
+                  "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": 114,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 43,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "ipv4.src_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": 259,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 288,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 57,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 289,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 30,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 71,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 68,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 115,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 121,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 91,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 85,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 108,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 51,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 53,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 55,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 89,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 83,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 101,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 9
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 1,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 2,
+          "records": [
+            {
+              "position_offset": 80,
+              "field_name": "ipv4.src_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": 68,
+              "field_name": "ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 44,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 92,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 89,
+              "field_name": "mpls.bos",
+              "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": 67,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 93,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 71,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 40,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": 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": 2,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 41,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 66,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 88,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 94,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "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_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 97,
+                  "header_name": "tcp",
+                  "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": 124,
+                  "header_name": "udp",
+                  "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": 133,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 62,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 26,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 60,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 134,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 140,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 37,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 98,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 3,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 67,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 104,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 131,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 42,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 118,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 127,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 46,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 129,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 122,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 125,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 339,
+          "records": [
+            {
+              "position_offset": 102,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 340,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 80,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 45,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 67,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 73,
+                  "header_name": "packet_in",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 81,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 78,
+                  "header_name": "tcp",
+                  "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": 105,
+                  "header_name": "udp",
+                  "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": 114,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 43,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "ipv4.src_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": 259,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 288,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 57,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 289,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 30,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 71,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 68,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 115,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 121,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 91,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 85,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 108,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 51,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 53,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 55,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 89,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 83,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 101,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 10
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 1,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 2,
+          "records": [
+            {
+              "position_offset": 80,
+              "field_name": "ipv4.src_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": 68,
+              "field_name": "ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 44,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 92,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 89,
+              "field_name": "mpls.bos",
+              "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": 67,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 93,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 71,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 40,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": 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": 2,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 41,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 66,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 88,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 94,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "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_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 97,
+                  "header_name": "tcp",
+                  "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": 124,
+                  "header_name": "udp",
+                  "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": 133,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 62,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 26,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 60,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 134,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 140,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 37,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 98,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 3,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 67,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 104,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 131,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 42,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 118,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 127,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 46,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 129,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 122,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 125,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 339,
+          "records": [
+            {
+              "position_offset": 102,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 340,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 80,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 45,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 67,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 73,
+                  "header_name": "packet_in",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 81,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 78,
+                  "header_name": "tcp",
+                  "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": 105,
+                  "header_name": "udp",
+                  "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": 114,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 43,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "ipv4.src_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": 259,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 288,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 57,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 289,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 30,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 71,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 68,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 115,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 121,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 91,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 85,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 108,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 51,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 53,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 55,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 89,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 83,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 101,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 11
+    }
+  ],
+  "tables": [
+    {
+      "direction": "ingress",
+      "handle": 16777217,
+      "name": "tbl_act",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 0,
+            "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": 0,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "result_physical_buses": [ 1 ],
+            "action_format": [
+              {
+                "action_name": "act_0",
+                "action_handle": 536870914,
+                "table_name": "tbl_act_8",
+                "next_table": 0,
+                "next_table_full": 16,
+                "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_0",
+          "handle": 536870914,
+          "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": "hasExited_0" },
+              "src": [
+                { "type": "immmediate", "name": "0" },
+                { "type": "phv", "name": "B7" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870914,
+      "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": "egress",
+      "handle": 16777218,
+      "name": "tbl_act_6",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 0,
+            "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": [ 0 ],
+            "action_format": [
+              {
+                "action_name": "act_6",
+                "action_handle": 536870915,
+                "table_name": "--END_OF_PIPELINE--",
+                "next_table": 0,
+                "next_table_full": 255,
+                "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_6",
+          "handle": 536870915,
+          "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": "packet_in.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B16" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "packet_in.ingress_port" },
+              "src": [
+                { "type": "phv", "name": "H18" },
+                { "type": "phv", "name": "H17" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870915,
+      "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": 16777219,
+      "name": "tbl_act_0",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 1,
+            "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": 0,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "result_physical_buses": [ 0 ],
+            "action_format": [
+              {
+                "action_name": "act",
+                "action_handle": 536870916,
+                "table_name": "filtering_ingress_port_vlan",
+                "next_table": 0,
+                "next_table_full": 32,
+                "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",
+          "handle": 536870916,
+          "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": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "phv", "name": "H2" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "hasExited_0" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B7" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870916,
+      "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": 16777220,
+      "name": "filtering.ingress_port_vlan",
+      "table_type": "match",
+      "size": 512,
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 2,
+            "size": 512,
+            "stage_table_type": "ternary_match",
+            "logical_table_id": 0,
+            "has_attached_gateway": true,
+            "pack_format": [
+              {
+                "table_word_width": 47,
+                "memory_word_width": 47,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 1,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_0--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--version--",
+                        "lsb_mem_word_offset": 43,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "version",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "--tcam_parity_0--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "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": 35,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 1
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [ 0 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 0
+            },
+            "default_next_table": 1,
+            "result_physical_buses": [ 0 ],
+            "ternary_indirection_stage_table": {
+              "stage_number": 2,
+              "stage_table_type": "ternary_indirection",
+              "size": 4096,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 4,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 3,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 3,
+                          "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": 20,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 99,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 9,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 119,
+                          "field_name": "--padding_23_31--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 2,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 3,
+                          "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": 20,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 67,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 9,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 87,
+                          "field_name": "--padding_23_31--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 3,
+                          "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": 20,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 35,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 9,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 55,
+                          "field_name": "--padding_23_31--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 3,
+                          "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": 20,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 3,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 9,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 23,
+                          "field_name": "--padding_23_31--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": {
+                "memory_type": "sram",
+                "memory_units_and_vpns": [ { "memory_units": [ 2 ], "vpns": [ 0 ] } ],
+                "spare_bank_memory_unit": 2
+              },
+              "action_format": [
+                {
+                  "action_name": "nop",
+                  "action_handle": 536870919,
+                  "table_name": "tbl_act_12",
+                  "next_table": 0,
+                  "next_table_full": 33,
+                  "vliw_instruction": 0,
+                  "vliw_instruction_full": 65,
+                  "immediate_fields": []
+                },
+                {
+                  "action_name": "filtering.push_internal_vlan",
+                  "action_handle": 536870917,
+                  "table_name": "tbl_act_12",
+                  "next_table": 0,
+                  "next_table_full": 33,
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 64,
+                  "immediate_fields": [
+                    {
+                      "param_name": "constant_1",
+                      "param_type": "constant",
+                      "const_value": 1,
+                      "param_shift": 0,
+                      "dest_start": 18,
+                      "dest_width": 1
+                    },
+                    {
+                      "param_name": "constant_1",
+                      "param_type": "constant",
+                      "const_value": 1,
+                      "param_shift": 0,
+                      "dest_start": 19,
+                      "dest_width": 1
+                    },
+                    {
+                      "param_name": "constant_0",
+                      "param_type": "constant",
+                      "const_value": 0,
+                      "param_shift": 0,
+                      "dest_start": 12,
+                      "dest_width": 1
+                    },
+                    {
+                      "param_name": "constant_0",
+                      "param_type": "constant",
+                      "const_value": 0,
+                      "param_shift": 0,
+                      "dest_start": 13,
+                      "dest_width": 3
+                    },
+                    {
+                      "param_name": "new_vlan_id",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 12
+                    }
+                  ]
+                },
+                {
+                  "action_name": "filtering.set_vlan",
+                  "action_handle": 536870918,
+                  "table_name": "tbl_act_12",
+                  "next_table": 0,
+                  "next_table_full": 33,
+                  "vliw_instruction": 2,
+                  "vliw_instruction_full": 66,
+                  "immediate_fields": [
+                    {
+                      "param_name": "new_vlan_id",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 12
+                    }
+                  ]
+                },
+                {
+                  "action_name": "filtering.drop",
+                  "action_handle": 536870920,
+                  "table_name": "tbl_act_12",
+                  "next_table": 0,
+                  "next_table_full": 33,
+                  "vliw_instruction": 3,
+                  "vliw_instruction_full": 67,
+                  "immediate_fields": []
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108865,
+          "name": "filtering.ingress_port_vlan_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "nop",
+          "handle": 536870919,
+          "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": "filtering.push_internal_vlan",
+          "handle": 536870917,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "new_vlan_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 12
+            }
+          ],
+          "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": "vlan_tag.ether_type" },
+              "src": [ { "type": "phv", "name": "H7" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.ether_type" },
+              "src": [ { "immediate": "33024" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B8" },
+              "src": [
+                { "type": "immediate", "name": "$data1" },
+                { "type": "phv", "name": "B8" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "H3" },
+              "src": [ { "type": "immediate", "name": "$data0" } ]
+            }
+          ]
+        },
+        {
+          "name": "filtering.set_vlan",
+          "handle": 536870918,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "new_vlan_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 12
+            }
+          ],
+          "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": "vlan_tag.vlan_id" },
+              "src": [
+                { "type": "immediate", "name": "new_vlan_id" },
+                { "type": "phv", "name": "H3" }
+              ]
+            }
+          ]
+        },
+        {
+          "name": "filtering.drop",
+          "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,
+          "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": "ig_intr_md_for_tm.drop_ctl" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "H2" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870919,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "ig_intr_md.ingress_port",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 9,
+          "bit_width_full": 9,
+          "is_valid": false,
+          "instance_name": "ig_intr_md",
+          "field_name": "ingress_port"
+        },
+        {
+          "name": "vlan_tag",
+          "position": 1,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 1,
+          "bit_width_full": 1,
+          "is_valid": true,
+          "instance_name": "vlan_tag",
+          "field_name": ""
+        },
+        {
+          "name": "vlan_tag.vlan_id",
+          "position": 2,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 12,
+          "bit_width_full": 12,
+          "is_valid": false,
+          "instance_name": "vlan_tag",
+          "field_name": "vlan_id"
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108865,
+      "name": "filtering.ingress_port_vlan_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 2,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 0,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 78 ], "vpns": [ 0 ] },
+              { "memory_units": [ 79 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 79
+          },
+          "stats_alu_index": 3
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777221,
+      "name": "tbl_act_4",
+      "table_type": "match",
+      "size": 512,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 2,
+            "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": 0,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "result_physical_buses": [ 1 ],
+            "action_format": [
+              {
+                "action_name": "act_4",
+                "action_handle": 536870921,
+                "table_name": "filtering_fwd_classifier",
+                "next_table": 0,
+                "next_table_full": 48,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 65,
+                "immediate_fields": []
+              }
+            ],
+            "hash_functions": []
+          }
+        ],
+        "match_type": "match_with_no_key",
+        "uses_dynamic_key_masks": false
+      },
+      "actions": [
+        {
+          "name": "act_4",
+          "handle": 536870921,
+          "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": []
+        }
+      ],
+      "default_action_handle": 536870921,
+      "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": true,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "indirect",
+          "handle": 67108866,
+          "name": "port_counters_control.ingress_port_counter"
+        }
+      ],
+      "stateful_table_refs": []
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108866,
+      "name": "port_counters_control.ingress_port_counter",
+      "table_type": "statistics",
+      "size": 511,
+      "stage_tables": [
+        {
+          "stage_number": 2,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 1,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 54 ], "vpns": [ 0 ] },
+              { "memory_units": [ 55 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 55
+          },
+          "stats_alu_index": 2
+        }
+      ],
+      "how_referenced": "indirect",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777222,
+      "name": "filtering.fwd_classifier",
+      "table_type": "match",
+      "size": 3072,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108867,
+          "name": "filtering.fwd_classifier_counter"
+        }
+      ],
+      "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": "ig_intr_md.ingress_port",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 9,
+          "bit_width_full": 9,
+          "is_valid": false,
+          "instance_name": "ig_intr_md",
+          "field_name": "ingress_port"
+        },
+        {
+          "name": "ethernet.dst_addr",
+          "position": 1,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 48,
+          "bit_width_full": 48,
+          "is_valid": false,
+          "instance_name": "ethernet",
+          "field_name": "dst_addr"
+        },
+        {
+          "name": "fabric_metadata.original_ether_type",
+          "position": 2,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 16,
+          "bit_width_full": 16,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "original_ether_type"
+        }
+      ],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 3,
+            "size": 3072,
+            "stage_table_type": "hash_match",
+            "logical_table_id": 0,
+            "has_attached_gateway": false,
+            "hash_functions": [
+              {
+                "hash_bits": [
+                  {
+                    "hash_bit": 0,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 0, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 1,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 1, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 2,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 2, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 3,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 3, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 4,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 4, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 5,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 5, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 6,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 6, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 7,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 7, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 8,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 8, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 9,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 10,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 0, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 11,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 1, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 12,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 2, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 13,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 3, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 14,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 4, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 15,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 5, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 16,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 6, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 17,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 7, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 18,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 8, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 19,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 20,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 0, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 21,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 1, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 22,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 2, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 23,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 3, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 24,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 4, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 25,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 5, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 26,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 6, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 27,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 7, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 28,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 8, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 29,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "action_format": [
+              {
+                "action_name": "filtering.set_forwarding_type",
+                "action_handle": 536870922,
+                "table_name": "forwarding_bridging",
+                "next_table": 0,
+                "next_table_full": 64,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 64,
+                "immediate_fields": [
+                  {
+                    "param_name": "fwd_type",
+                    "param_type": "parameter",
+                    "param_shift": 0,
+                    "dest_start": 3,
+                    "dest_width": 3
+                  }
+                ]
+              }
+            ],
+            "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": 6,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 65,
+                            "start_bit": 9,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 7
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 8,
+                            "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": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 16,
+                            "start_bit": 24,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "start_bit": 32,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 32,
+                            "start_bit": 40,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "fabric_metadata.original_ether_type",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "start_bit": 0,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "fabric_metadata.original_ether_type",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 48,
+                            "start_bit": 8,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ig_intr_md.ingress_port",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 56,
+                            "start_bit": 0,
+                            "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": 6,
+                            "field_name": "--padding_6_7--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 64,
+                            "field_name": "--padding_64_64--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 40,
+                            "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--",
+                            "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": 6,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 65,
+                            "start_bit": 9,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 7
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 8,
+                            "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": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 16,
+                            "start_bit": 24,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "start_bit": 32,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 32,
+                            "start_bit": 40,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "fabric_metadata.original_ether_type",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "start_bit": 0,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "fabric_metadata.original_ether_type",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 48,
+                            "start_bit": 8,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ig_intr_md.ingress_port",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 56,
+                            "start_bit": 0,
+                            "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": 6,
+                            "field_name": "--padding_6_7--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 64,
+                            "field_name": "--padding_64_64--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 40,
+                            "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--",
+                            "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": 6,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 65,
+                            "start_bit": 9,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 7
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 8,
+                            "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": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 16,
+                            "start_bit": 24,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "start_bit": 32,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 32,
+                            "start_bit": 40,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "fabric_metadata.original_ether_type",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "start_bit": 0,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "fabric_metadata.original_ether_type",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 48,
+                            "start_bit": 8,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ig_intr_md.ingress_port",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 56,
+                            "start_bit": 0,
+                            "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": 6,
+                            "field_name": "--padding_6_7--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 64,
+                            "field_name": "--padding_64_64--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 40,
+                            "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--",
+                            "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": "filtering.set_forwarding_type",
+          "handle": 536870922,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "p4_parameters": [
+            {
+              "name": "fwd_type",
+              "start_bit": 0,
+              "position": 0,
+              "default_value": 0,
+              "bit_width": 3
+            }
+          ],
+          "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": "fabric_metadata.fwd_type" },
+              "src": [
+                { "type": "immediate", "name": "fwd_type" },
+                { "type": "phv", "name": "H2" }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108867,
+      "name": "filtering.fwd_classifier_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 3,
+          "size": 4096,
+          "stage_table_type": "statistics",
+          "logical_table_id": 0,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 78 ], "vpns": [ 0 ] },
+              { "memory_units": [ 79 ], "vpns": [ 1 ] },
+              { "memory_units": [ 80 ], "vpns": [ 2 ] }
+            ],
+            "spare_bank_memory_unit": 80
+          },
+          "stats_alu_index": 3
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777223,
+      "name": "forwarding.bridging",
+      "table_type": "match",
+      "size": 512,
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 4,
+            "size": 512,
+            "stage_table_type": "ternary_match",
+            "logical_table_id": 0,
+            "has_attached_gateway": true,
+            "pack_format": [
+              {
+                "table_word_width": 94,
+                "memory_word_width": 47,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 2,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_1--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_1--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ethernet.dst_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 16,
+                        "field_width": 32
+                      },
+                      {
+                        "field_name": "ethernet.dst_addr",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "--tcam_payload_0--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--version--",
+                        "lsb_mem_word_offset": 43,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "version",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "--tcam_parity_0--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "vlan_tag.vlan_id",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ethernet.dst_addr",
+                        "lsb_mem_word_offset": 9,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "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
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [ 0, 1 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 1
+            },
+            "default_next_table": 0,
+            "result_physical_buses": [ 0, 2 ],
+            "ternary_indirection_stage_table": {
+              "stage_number": 4,
+              "stage_table_type": "ternary_indirection",
+              "size": 2048,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 2,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 66,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 98,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 2,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 34,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": {
+                "memory_type": "sram",
+                "memory_units_and_vpns": [ { "memory_units": [ 2 ], "vpns": [ 0 ] } ],
+                "spare_bank_memory_unit": 2
+              },
+              "action_format": [
+                {
+                  "action_name": "NoAction",
+                  "action_handle": 536870924,
+                  "table_name": "forwarding_acl",
+                  "next_table": 0,
+                  "next_table_full": 80,
+                  "vliw_instruction": 0,
+                  "vliw_instruction_full": 65,
+                  "immediate_fields": []
+                },
+                {
+                  "action_name": "forwarding.set_next_id",
+                  "action_handle": 536870923,
+                  "table_name": "forwarding_acl",
+                  "next_table": 0,
+                  "next_table_full": 80,
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 64,
+                  "immediate_fields": [
+                    {
+                      "param_name": "next_id",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 32
+                    }
+                  ]
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108868,
+          "name": "forwarding.bridging_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870924,
+          "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": "forwarding.set_next_id",
+          "handle": 536870923,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "next_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 32
+            }
+          ],
+          "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": "fabric_metadata.next_id" },
+              "src": [ { "type": "immediate", "name": "next_id" } ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870924,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "vlan_tag.vlan_id",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 12,
+          "bit_width_full": 12,
+          "is_valid": false,
+          "instance_name": "vlan_tag",
+          "field_name": "vlan_id"
+        },
+        {
+          "name": "ethernet.dst_addr",
+          "position": 1,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 48,
+          "bit_width_full": 48,
+          "is_valid": false,
+          "instance_name": "ethernet",
+          "field_name": "dst_addr"
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108868,
+      "name": "forwarding.bridging_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 4,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 0,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 6 ], "vpns": [ 0 ] },
+              { "memory_units": [ 7 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 7
+          },
+          "stats_alu_index": 0
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777224,
+      "name": "forwarding.mpls",
+      "table_type": "match",
+      "size": 3072,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108869,
+          "name": "forwarding.mpls_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "default_action_handle": 536870926,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "mpls.label",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 20,
+          "bit_width_full": 20,
+          "is_valid": false,
+          "instance_name": "mpls",
+          "field_name": "label"
+        }
+      ],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 4,
+            "size": 3072,
+            "stage_table_type": "hash_match",
+            "logical_table_id": 1,
+            "has_attached_gateway": true,
+            "hash_functions": [
+              {
+                "hash_bits": [
+                  {
+                    "hash_bit": 0,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 4, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 1,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 5, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 2,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 6, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 3,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 7, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 4,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 8, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 5,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 9, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 6,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 0, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 7,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 1, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 8,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 2, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 9,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 3, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 10,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 4, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 11,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 5, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 12,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 6, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 13,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 7, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 14,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 8, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 15,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 9, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 16,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 0, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 17,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 1, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 18,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 2, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 19,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 3, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 20,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 4, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 21,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 5, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 22,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 6, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 23,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 7, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 24,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 8, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 25,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 9, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 26,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 0, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 27,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 1, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 28,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 2, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 29,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 3, "field_name": "mpls.label" }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "action_format": [
+              {
+                "action_name": "NoAction",
+                "action_handle": 536870926,
+                "table_name": "tbl_act_9",
+                "next_table": 0,
+                "next_table_full": 68,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 65,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "forwarding.pop_mpls_and_next",
+                "action_handle": 536870925,
+                "table_name": "tbl_act_9",
+                "next_table": 0,
+                "next_table_full": 68,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 66,
+                "immediate_fields": [
+                  {
+                    "param_name": "next_id",
+                    "param_type": "parameter",
+                    "param_shift": 0,
+                    "dest_start": 0,
+                    "dest_width": 32
+                  }
+                ]
+              }
+            ],
+            "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": 4,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "mpls.label",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 38,
+                            "start_bit": 10,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 2
+                          },
+                          {
+                            "field_name": "mpls.label",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "start_bit": 12,
+                            "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": 4,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 34,
+                            "field_name": "--padding_34_37--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 64,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 48,
+                            "field_name": "--padding_48_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": 4,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "mpls.label",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 38,
+                            "start_bit": 10,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 2
+                          },
+                          {
+                            "field_name": "mpls.label",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "start_bit": 12,
+                            "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": 4,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 34,
+                            "field_name": "--padding_34_37--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 64,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 48,
+                            "field_name": "--padding_48_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": 4,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "mpls.label",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 38,
+                            "start_bit": 10,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 2
+                          },
+                          {
+                            "field_name": "mpls.label",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "start_bit": 12,
+                            "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": 4,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 34,
+                            "field_name": "--padding_34_37--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 64,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 48,
+                            "field_name": "--padding_48_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": 536870926,
+          "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": []
+        },
+        {
+          "name": "forwarding.pop_mpls_and_next",
+          "handle": 536870925,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "p4_parameters": [
+            {
+              "name": "next_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 32
+            }
+          ],
+          "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": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "0" },
+                { "type": "phv", "name": "B7" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "fabric_metadata.next_id" },
+              "src": [ { "type": "immediate", "name": "next_id" } ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108869,
+      "name": "forwarding.mpls_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 4,
+          "size": 4096,
+          "stage_table_type": "statistics",
+          "logical_table_id": 1,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 78 ], "vpns": [ 0 ] },
+              { "memory_units": [ 79 ], "vpns": [ 1 ] },
+              { "memory_units": [ 80 ], "vpns": [ 2 ] }
+            ],
+            "spare_bank_memory_unit": 80
+          },
+          "stats_alu_index": 3
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777225,
+      "name": "tbl_act_1",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 4,
+            "size": 1,
+            "stage_table_type": "match_with_no_key",
+            "logical_table_id": 4,
+            "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": [ 0 ],
+            "action_format": [
+              {
+                "action_name": "act_1",
+                "action_handle": 536870927,
+                "table_name": "forwarding_acl",
+                "next_table": 0,
+                "next_table_full": 80,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 67,
+                "immediate_fields": []
+              }
+            ],
+            "hash_functions": []
+          }
+        ],
+        "match_type": "match_with_no_key",
+        "uses_dynamic_key_masks": false
+      },
+      "actions": [
+        {
+          "name": "act_1",
+          "handle": 536870927,
+          "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": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "2048" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "fabric_metadata.original_ether_type" },
+              "src": [ { "immediate": "2048" } ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870927,
+      "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": "forwarding.unicast_v4",
+      "table_type": "match",
+      "size": 512,
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 4,
+            "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,
+                "number_memory_units_per_table_word": 1,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_0--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--version--",
+                        "lsb_mem_word_offset": 43,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "version",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "--tcam_parity_0--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 24,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 9,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 24
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [ 5 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 5
+            },
+            "default_next_table": 0,
+            "result_physical_buses": [ 10 ],
+            "ternary_indirection_stage_table": {
+              "stage_number": 4,
+              "stage_table_type": "ternary_indirection",
+              "size": 2048,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 2,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 66,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 98,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 2,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 34,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": {
+                "memory_type": "sram",
+                "memory_units_and_vpns": [ { "memory_units": [ 14 ], "vpns": [ 0 ] } ],
+                "spare_bank_memory_unit": 14
+              },
+              "action_format": [
+                {
+                  "action_name": "NoAction",
+                  "action_handle": 536870929,
+                  "table_name": "forwarding_acl",
+                  "next_table": 0,
+                  "next_table_full": 80,
+                  "vliw_instruction": 0,
+                  "vliw_instruction_full": 65,
+                  "immediate_fields": []
+                },
+                {
+                  "action_name": "forwarding.set_next_id",
+                  "action_handle": 536870928,
+                  "table_name": "forwarding_acl",
+                  "next_table": 0,
+                  "next_table_full": 80,
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 68,
+                  "immediate_fields": [
+                    {
+                      "param_name": "next_id",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 32
+                    }
+                  ]
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108870,
+          "name": "forwarding.unicast_v4_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870929,
+          "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": "forwarding.set_next_id",
+          "handle": 536870928,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "next_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 32
+            }
+          ],
+          "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": "fabric_metadata.next_id" },
+              "src": [ { "type": "immediate", "name": "next_id" } ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870929,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "ipv4.dst_addr",
+          "position": 0,
+          "match_type": "lpm",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "ipv4",
+          "field_name": "dst_addr"
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108870,
+      "name": "forwarding.unicast_v4_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 4,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 2,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 30 ], "vpns": [ 0 ] },
+              { "memory_units": [ 31 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 31
+          },
+          "stats_alu_index": 1
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777227,
+      "name": "forwarding.multicast_v4",
+      "table_type": "match",
+      "size": 512,
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 4,
+            "size": 512,
+            "stage_table_type": "ternary_match",
+            "logical_table_id": 3,
+            "has_attached_gateway": true,
+            "pack_format": [
+              {
+                "table_word_width": 141,
+                "memory_word_width": 47,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 3,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_2--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_2--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "vlan_tag.vlan_id",
+                        "lsb_mem_word_offset": 17,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "--tcam_payload_1--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_1--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 24,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "--tcam_payload_0--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--version--",
+                        "lsb_mem_word_offset": 43,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "version",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "--tcam_parity_0--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 16
+                      },
+                      {
+                        "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": 8,
+                        "field_width": 4
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 25,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [ 2, 3, 4 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 4
+            },
+            "default_next_table": 0,
+            "result_physical_buses": [ 4, 6, 8 ],
+            "ternary_indirection_stage_table": {
+              "stage_number": 4,
+              "stage_table_type": "ternary_indirection",
+              "size": 2048,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 2,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 66,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 98,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 2,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 34,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": {
+                "memory_type": "sram",
+                "memory_units_and_vpns": [ { "memory_units": [ 26 ], "vpns": [ 0 ] } ],
+                "spare_bank_memory_unit": 26
+              },
+              "action_format": [
+                {
+                  "action_name": "NoAction",
+                  "action_handle": 536870931,
+                  "table_name": "forwarding_acl",
+                  "next_table": 0,
+                  "next_table_full": 80,
+                  "vliw_instruction": 0,
+                  "vliw_instruction_full": 65,
+                  "immediate_fields": []
+                },
+                {
+                  "action_name": "forwarding.set_next_id",
+                  "action_handle": 536870930,
+                  "table_name": "forwarding_acl",
+                  "next_table": 0,
+                  "next_table_full": 80,
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 70,
+                  "immediate_fields": [
+                    {
+                      "param_name": "next_id",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 32
+                    }
+                  ]
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108871,
+          "name": "forwarding.multicast_v4_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "NoAction",
+          "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": "forwarding.set_next_id",
+          "handle": 536870930,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "next_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 32
+            }
+          ],
+          "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": "fabric_metadata.next_id" },
+              "src": [ { "type": "immediate", "name": "next_id" } ]
+            }
+          ]
+        }
+      ],
+      "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": [
+        {
+          "name": "vlan_tag.vlan_id",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 12,
+          "bit_width_full": 12,
+          "is_valid": false,
+          "instance_name": "vlan_tag",
+          "field_name": "vlan_id"
+        },
+        {
+          "name": "ipv4.dst_addr",
+          "position": 1,
+          "match_type": "lpm",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "ipv4",
+          "field_name": "dst_addr"
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108871,
+      "name": "forwarding.multicast_v4_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 4,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 3,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 54 ], "vpns": [ 0 ] },
+              { "memory_units": [ 55 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 55
+          },
+          "stats_alu_index": 2
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777228,
+      "name": "forwarding.acl",
+      "table_type": "match",
+      "size": 256,
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 5,
+            "size": 512,
+            "stage_table_type": "ternary_match",
+            "logical_table_id": 0,
+            "has_attached_gateway": false,
+            "pack_format": [
+              {
+                "table_word_width": 282,
+                "memory_word_width": 47,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 6,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_5--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 5,
+                        "msb_mem_word_idx": 5,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_5--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 5,
+                        "msb_mem_word_idx": 5,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ethernet.dst_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 5,
+                        "msb_mem_word_idx": 5,
+                        "source": "spec",
+                        "start_bit": 16,
+                        "field_width": 32
+                      },
+                      {
+                        "field_name": "ethernet.src_addr",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 5,
+                        "msb_mem_word_idx": 5,
+                        "source": "spec",
+                        "start_bit": 16,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ig_intr_md.ingress_port",
+                        "lsb_mem_word_offset": 41,
+                        "lsb_mem_word_idx": 5,
+                        "msb_mem_word_idx": 5,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_payload_4--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--version--",
+                        "lsb_mem_word_offset": 43,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "version",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "--tcam_parity_4--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ethernet.src_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "spec",
+                        "start_bit": 32,
+                        "field_width": 16
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 17,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ethernet.src_addr",
+                        "lsb_mem_word_offset": 25,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "spec",
+                        "start_bit": 24,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "spec",
+                        "start_bit": 16,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "--tcam_payload_3--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_3--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "spec",
+                        "start_bit": 24,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ipv4.src_addr",
+                        "lsb_mem_word_offset": 9,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 17,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ipv4.src_addr",
+                        "lsb_mem_word_offset": 25,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "spec",
+                        "start_bit": 16,
+                        "field_width": 16
+                      },
+                      {
+                        "field_name": "fabric_metadata.l4_dst_port",
+                        "lsb_mem_word_offset": 41,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 4
+                      },
+                      {
+                        "field_name": "fabric_metadata.l4_dst_port",
+                        "lsb_mem_word_offset": 41,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "spec",
+                        "start_bit": 4,
+                        "field_width": 4
+                      },
+                      {
+                        "field_name": "--tcam_payload_2--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_2--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ipv4.src_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ethernet.dst_addr",
+                        "lsb_mem_word_offset": 9,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 16
+                      },
+                      {
+                        "field_name": "ethernet.src_addr",
+                        "lsb_mem_word_offset": 25,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 16
+                      },
+                      {
+                        "field_name": "--tcam_payload_1--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_1--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "fabric_metadata.l4_src_port",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "fabric_metadata.l4_dst_port",
+                        "lsb_mem_word_offset": 9,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "fabric_metadata.original_ether_type",
+                        "lsb_mem_word_offset": 17,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "fabric_metadata.l4_src_port",
+                        "lsb_mem_word_offset": 25,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ig_intr_md.ingress_port",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "icmp.icmp_type",
+                        "lsb_mem_word_offset": 41,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 4
+                      },
+                      {
+                        "field_name": "icmp.icmp_type",
+                        "lsb_mem_word_offset": 41,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 4,
+                        "field_width": 4
+                      },
+                      {
+                        "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
+                      },
+                      {
+                        "field_name": "vlan_tag.vlan_id",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "fabric_metadata.original_ether_type",
+                        "lsb_mem_word_offset": 9,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "fabric_metadata.ip_proto",
+                        "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": "icmp.icmp_code",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [ 0, 1, 2, 3, 4, 5 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 5
+            },
+            "default_next_table": 0,
+            "result_physical_buses": [ 0, 2, 4, 6, 8, 10 ],
+            "ternary_indirection_stage_table": {
+              "stage_number": 5,
+              "stage_table_type": "ternary_indirection",
+              "size": 2048,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 2,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 66,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 98,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 2,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 34,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": {
+                "memory_type": "sram",
+                "memory_units_and_vpns": [ { "memory_units": [ 2 ], "vpns": [ 0 ] } ],
+                "spare_bank_memory_unit": 2
+              },
+              "action_format": [
+                {
+                  "action_name": "nop",
+                  "action_handle": 536870935,
+                  "table_name": "next_simple",
+                  "next_table": 0,
+                  "next_table_full": 96,
+                  "vliw_instruction": 0,
+                  "vliw_instruction_full": 67,
+                  "immediate_fields": []
+                },
+                {
+                  "action_name": "forwarding.set_next_id",
+                  "action_handle": 536870932,
+                  "table_name": "next_simple",
+                  "next_table": 0,
+                  "next_table_full": 96,
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 64,
+                  "immediate_fields": [
+                    {
+                      "param_name": "next_id",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 32
+                    }
+                  ]
+                },
+                {
+                  "action_name": "forwarding.duplicate_to_controller",
+                  "action_handle": 536870933,
+                  "table_name": "next_simple",
+                  "next_table": 0,
+                  "next_table_full": 96,
+                  "vliw_instruction": 2,
+                  "vliw_instruction_full": 65,
+                  "immediate_fields": [
+                    {
+                      "param_name": "constant_320",
+                      "param_type": "constant",
+                      "const_value": 320,
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 9
+                    }
+                  ]
+                },
+                {
+                  "action_name": "forwarding.drop",
+                  "action_handle": 536870934,
+                  "table_name": "next_simple",
+                  "next_table": 0,
+                  "next_table_full": 96,
+                  "vliw_instruction": 3,
+                  "vliw_instruction_full": 66,
+                  "immediate_fields": []
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108872,
+          "name": "forwarding.acl_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "nop",
+          "handle": 536870935,
+          "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": "forwarding.set_next_id",
+          "handle": 536870932,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "next_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 32
+            }
+          ],
+          "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": "fabric_metadata.next_id" },
+              "src": [ { "type": "immediate", "name": "next_id" } ]
+            }
+          ]
+        },
+        {
+          "name": "forwarding.duplicate_to_controller",
+          "handle": 536870933,
+          "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": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "immediate", "name": "$constant0" },
+                { "type": "phv", "name": "H1" }
+              ]
+            }
+          ]
+        },
+        {
+          "name": "forwarding.drop",
+          "handle": 536870934,
+          "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": "ig_intr_md_for_tm.drop_ctl" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "H2" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870935,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "ig_intr_md.ingress_port",
+          "position": 0,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 9,
+          "bit_width_full": 9,
+          "is_valid": false,
+          "instance_name": "ig_intr_md",
+          "field_name": "ingress_port"
+        },
+        {
+          "name": "fabric_metadata.ip_proto",
+          "position": 1,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 8,
+          "bit_width_full": 8,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "ip_proto"
+        },
+        {
+          "name": "fabric_metadata.l4_src_port",
+          "position": 2,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 16,
+          "bit_width_full": 16,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "l4_src_port"
+        },
+        {
+          "name": "fabric_metadata.l4_dst_port",
+          "position": 3,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 16,
+          "bit_width_full": 16,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "l4_dst_port"
+        },
+        {
+          "name": "fabric_metadata.original_ether_type",
+          "position": 4,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 16,
+          "bit_width_full": 16,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "original_ether_type"
+        },
+        {
+          "name": "ethernet.dst_addr",
+          "position": 5,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 48,
+          "bit_width_full": 48,
+          "is_valid": false,
+          "instance_name": "ethernet",
+          "field_name": "dst_addr"
+        },
+        {
+          "name": "ethernet.src_addr",
+          "position": 6,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 48,
+          "bit_width_full": 48,
+          "is_valid": false,
+          "instance_name": "ethernet",
+          "field_name": "src_addr"
+        },
+        {
+          "name": "vlan_tag.vlan_id",
+          "position": 7,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 12,
+          "bit_width_full": 12,
+          "is_valid": false,
+          "instance_name": "vlan_tag",
+          "field_name": "vlan_id"
+        },
+        {
+          "name": "ipv4.src_addr",
+          "position": 8,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "ipv4",
+          "field_name": "src_addr"
+        },
+        {
+          "name": "ipv4.dst_addr",
+          "position": 9,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "ipv4",
+          "field_name": "dst_addr"
+        },
+        {
+          "name": "icmp.icmp_type",
+          "position": 10,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 8,
+          "bit_width_full": 8,
+          "is_valid": false,
+          "instance_name": "icmp",
+          "field_name": "icmp_type"
+        },
+        {
+          "name": "icmp.icmp_code",
+          "position": 11,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 8,
+          "bit_width_full": 8,
+          "is_valid": false,
+          "instance_name": "icmp",
+          "field_name": "icmp_code"
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108872,
+      "name": "forwarding.acl_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 5,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 0,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 78 ], "vpns": [ 0 ] },
+              { "memory_units": [ 79 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 79
+          },
+          "stats_alu_index": 3
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777229,
+      "name": "next.simple",
+      "table_type": "match",
+      "size": 3072,
+      "action_data_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 33554433,
+          "name": "next_simple$action"
+        }
+      ],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108873,
+          "name": "next.simple_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "default_action_handle": 536870940,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "fabric_metadata.next_id",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "next_id"
+        }
+      ],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 6,
+            "size": 3072,
+            "stage_table_type": "hash_match",
+            "logical_table_id": 0,
+            "has_attached_gateway": false,
+            "hash_functions": [
+              {
+                "hash_bits": [
+                  {
+                    "hash_bit": 0,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 16,
+                        "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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 1,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 22,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 2,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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"
+                      },
+                      {
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 3,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 4,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "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": 20,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 21,
+                        "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": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 5,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "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": 23,
+                        "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": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 6,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 7,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 8,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 9,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 19,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 20,
+                        "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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 10,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 20,
+                        "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": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 11,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 12,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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": 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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 13,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 14,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 16,
+                        "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": 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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 15,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 16,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "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"
+                      },
+                      {
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 17,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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": 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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 18,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 19,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "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": 22,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 20,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 19,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 21,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 22,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "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": 24,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 23,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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": 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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 24,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "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": 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": 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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 25,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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"
+                      },
+                      {
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 26,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 27,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 22,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 28,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 17,
+                        "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": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 29,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 21,
+                        "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"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "action_format": [
+              {
+                "action_name": "NoAction",
+                "action_handle": 536870940,
+                "table_name": "next_hashed",
+                "next_table": 0,
+                "next_table_full": 114,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 65,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.output",
+                "action_handle": 536870936,
+                "table_name": "next_hashed",
+                "next_table": 1,
+                "next_table_full": 114,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 64,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.set_vlan_output",
+                "action_handle": 536870937,
+                "table_name": "next_hashed",
+                "next_table": 2,
+                "next_table_full": 114,
+                "vliw_instruction": 2,
+                "vliw_instruction_full": 66,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.l3_routing",
+                "action_handle": 536870938,
+                "table_name": "next_hashed",
+                "next_table": 3,
+                "next_table_full": 114,
+                "vliw_instruction": 3,
+                "vliw_instruction_full": 68,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.mpls_routing_v4",
+                "action_handle": 536870939,
+                "table_name": "next_hashed",
+                "next_table": 4,
+                "next_table_full": 114,
+                "vliw_instruction": 4,
+                "vliw_instruction_full": 70,
+                "immediate_fields": [
+                  {
+                    "param_name": "constant_0",
+                    "param_type": "constant",
+                    "const_value": 0,
+                    "param_shift": 0,
+                    "dest_start": 1,
+                    "dest_width": 3
+                  },
+                  {
+                    "param_name": "constant_1",
+                    "param_type": "constant",
+                    "const_value": 1,
+                    "param_shift": 0,
+                    "dest_start": 0,
+                    "dest_width": 1
+                  },
+                  {
+                    "param_name": "label",
+                    "param_type": "parameter",
+                    "param_shift": 0,
+                    "dest_start": 4,
+                    "dest_width": 4
+                  }
+                ]
+              }
+            ],
+            "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": 6,
+                "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": 3,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 8,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 3,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 12,
+                            "field_name": "version",
+                            "match_mode": "s1q0"
+                          },
+                          {
+                            "field_name": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 34,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 16,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 11,
+                            "field_name": "--padding_11_11--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 32,
+                            "field_name": "--padding_32_33--",
+                            "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": 40,
+                            "field_name": "--padding_40_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": 6,
+                "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": 3,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 8,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 3,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 12,
+                            "field_name": "version",
+                            "match_mode": "s1q0"
+                          },
+                          {
+                            "field_name": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 34,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 16,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 11,
+                            "field_name": "--padding_11_11--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 32,
+                            "field_name": "--padding_32_33--",
+                            "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": 40,
+                            "field_name": "--padding_40_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": 6,
+                "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": 3,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 8,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 3,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 12,
+                            "field_name": "version",
+                            "match_mode": "s1q0"
+                          },
+                          {
+                            "field_name": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 34,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 16,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 11,
+                            "field_name": "--padding_11_11--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 32,
+                            "field_name": "--padding_32_33--",
+                            "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": 40,
+                            "field_name": "--padding_40_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": 536870940,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "next.output",
+          "handle": 536870936,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            }
+          ]
+        },
+        {
+          "name": "next.set_vlan_output",
+          "handle": 536870937,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "new_vlan_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 12
+            },
+            {
+              "name": "port_num",
+              "start_bit": 12,
+              "position": 1,
+              "bit_width": 9
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.vlan_id" },
+              "src": [
+                { "type": "action_param", "name": "new_vlan_id" },
+                { "type": "phv", "name": "H3" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "fabric_metadata.pop_vlan_at_egress" },
+              "src": [
+                { "type": "immmediate", "name": "0" },
+                { "type": "phv", "name": "B8" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            }
+          ]
+        },
+        {
+          "name": "next.l3_routing",
+          "handle": 536870938,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 }
+          ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            }
+          ]
+        },
+        {
+          "name": "next.mpls_routing_v4",
+          "handle": 536870939,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 },
+            {
+              "name": "label",
+              "start_bit": 105,
+              "position": 3,
+              "bit_width": 20
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B7" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "34887" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.label.4-19" },
+              "src": [ { "type": "action_param", "name": "label.4-19" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B2" },
+              "src": [ { "type": "immediate", "name": "$data0" } ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108873,
+      "name": "next.simple_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 6,
+          "size": 4096,
+          "stage_table_type": "statistics",
+          "logical_table_id": 0,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 78 ], "vpns": [ 0 ] },
+              { "memory_units": [ 79 ], "vpns": [ 1 ] },
+              { "memory_units": [ 80 ], "vpns": [ 2 ] }
+            ],
+            "spare_bank_memory_unit": 80
+          },
+          "stats_alu_index": 3
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 33554433,
+      "name": "next_simple$action",
+      "table_type": "action",
+      "size": 3072,
+      "stage_tables": [
+        {
+          "stage_number": 6,
+          "size": 3072,
+          "stage_table_type": "action_data",
+          "logical_table_id": 0,
+          "pack_format": [
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 128,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_127--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870940
+            },
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 9,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 48,
+                      "field_name": "port_num"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 48,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_47--"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 71,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 57,
+                      "field_name": "--padding_57_127--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870936
+            },
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 9,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 32,
+                      "field_name": "port_num"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 12,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 48,
+                      "field_name": "new_vlan_id"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_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": 68,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 60,
+                      "field_name": "--padding_60_127--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870937
+            },
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 9,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 16,
+                      "field_name": "port_num"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 32,
+                      "field_name": "dmac"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 48,
+                      "field_name": "smac"
+                    },
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "dmac"
+                    },
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 96,
+                      "field_name": "smac"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_15--"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 7,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 25,
+                      "field_name": "--padding_25_31--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870938
+            },
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 9,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 0,
+                      "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": 16,
+                      "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": 32,
+                      "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": 48,
+                      "field_name": "smac"
+                    },
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "dmac"
+                    },
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 96,
+                      "field_name": "smac"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 7,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 9,
+                      "field_name": "--padding_9_15--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870939
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 90 ], "vpns": [ 0 ] },
+              { "memory_units": [ 91 ], "vpns": [ 1 ] },
+              { "memory_units": [ 92 ], "vpns": [ 2 ] }
+            ],
+            "spare_bank_memory_unit": 92
+          }
+        }
+      ],
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870940,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "next.output",
+          "handle": 536870936,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            }
+          ]
+        },
+        {
+          "name": "next.set_vlan_output",
+          "handle": 536870937,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "new_vlan_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 12
+            },
+            {
+              "name": "port_num",
+              "start_bit": 12,
+              "position": 1,
+              "bit_width": 9
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.vlan_id" },
+              "src": [
+                { "type": "action_param", "name": "new_vlan_id" },
+                { "type": "phv", "name": "H3" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "fabric_metadata.pop_vlan_at_egress" },
+              "src": [
+                { "type": "immmediate", "name": "0" },
+                { "type": "phv", "name": "B8" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            }
+          ]
+        },
+        {
+          "name": "next.l3_routing",
+          "handle": 536870938,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 }
+          ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            }
+          ]
+        },
+        {
+          "name": "next.mpls_routing_v4",
+          "handle": 536870939,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 },
+            {
+              "name": "label",
+              "start_bit": 105,
+              "position": 3,
+              "bit_width": 20
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B7" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "34887" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.label.4-19" },
+              "src": [ { "type": "action_param", "name": "label.4-19" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B2" },
+              "src": [ { "type": "immediate", "name": "$data0" } ]
+            }
+          ]
+        }
+      ],
+      "how_referenced": "direct"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777230,
+      "name": "tbl_act_2",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 7,
+            "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": [ 0 ],
+            "action_format": [
+              {
+                "action_name": "act_2",
+                "action_handle": 536870941,
+                "table_name": "next_hashed",
+                "next_table": 0,
+                "next_table_full": 114,
+                "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_2",
+          "handle": 536870941,
+          "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": "DirectAluPrimitive",
+              "operation": "add",
+              "dest": { "type": "phv", "name": "ipv4.ttl" },
+              "src": [
+                { "type": "immmediate", "name": "255" },
+                { "type": "phv", "name": "B4" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870941,
+      "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": 16777231,
+      "name": "next.hashed",
+      "table_type": "match",
+      "size": 3072,
+      "action_data_table_refs": [
+        {
+          "how_referenced": "indirect",
+          "handle": 33554434,
+          "name": "next.ecmp_selector"
+        }
+      ],
+      "selection_table_refs": [
+        {
+          "how_referenced": "indirect",
+          "handle": 50331649,
+          "name": "next.ecmp_selector"
+        }
+      ],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108874,
+          "name": "next.hashed_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "default_selector_mask": 0,
+      "default_selector_value": 0,
+      "default_action_handle": 536870945,
+      "action_profile": "next.ecmp_selector",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "fabric_metadata.next_id",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "next_id"
+        }
+      ],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 7,
+            "size": 3072,
+            "stage_table_type": "hash_match",
+            "logical_table_id": 2,
+            "has_attached_gateway": false,
+            "hash_functions": [
+              {
+                "hash_bits": [
+                  {
+                    "hash_bit": 0,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "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": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 1,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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_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": 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": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 2,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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_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": 2,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 3,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 17,
+                        "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": 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": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 4,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 5,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 22,
+                        "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": 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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 6,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "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": 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": 6,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 7,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "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": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 8,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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"
+                      },
+                      {
+                        "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": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 9,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 10,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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_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": 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": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 11,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 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": 1,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 12,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 25,
+                        "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": 2,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 13,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "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": 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"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 14,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 20,
+                        "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"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 15,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 16,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 18,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 19,
+                        "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": 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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 17,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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": 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": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 18,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 18,
+                        "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": 24,
+                        "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": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 19,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 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": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 20,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 19,
+                        "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"
+                      },
+                      {
+                        "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": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 21,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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"
+                      },
+                      {
+                        "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": 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": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 22,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 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"
+                      },
+                      {
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 23,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 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"
+                      },
+                      {
+                        "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": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 24,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 25,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 22,
+                        "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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 26,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 19,
+                        "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": 6,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 27,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 22,
+                        "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": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 28,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 18,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 19,
+                        "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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 29,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 23,
+                        "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": 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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "action_format": [
+              {
+                "action_name": "NoAction",
+                "action_handle": 536870945,
+                "table_name": "tbl_act_13",
+                "next_table": 0,
+                "next_table_full": 128,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 67,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.l3_routing",
+                "action_handle": 536870942,
+                "table_name": "tbl_act_13",
+                "next_table": 0,
+                "next_table_full": 128,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 65,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.mpls_routing_v4",
+                "action_handle": 536870943,
+                "table_name": "tbl_act_13",
+                "next_table": 0,
+                "next_table_full": 128,
+                "vliw_instruction": 2,
+                "vliw_instruction_full": 66,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.mpls_routing_v6",
+                "action_handle": 536870944,
+                "table_name": "tbl_act_13",
+                "next_table": 0,
+                "next_table_full": 128,
+                "vliw_instruction": 3,
+                "vliw_instruction_full": 68,
+                "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": 7,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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"
+                          },
+                          {
+                            "start_bit": 7,
+                            "enable_pfe": true,
+                            "field_width": 10,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "sel_ptr",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "meter_addr",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 5,
+                            "enable_pfe": false,
+                            "field_width": 11,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "adt_ptr",
+                            "lsb_mem_word_offset": 13,
+                            "field_name": "action_addr",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "field_name": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 42,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 32,
+                            "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": 40,
+                            "field_name": "--padding_40_41--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 64,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 48,
+                            "field_name": "--padding_48_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": 7,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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"
+                          },
+                          {
+                            "start_bit": 7,
+                            "enable_pfe": true,
+                            "field_width": 10,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "sel_ptr",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "meter_addr",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 5,
+                            "enable_pfe": false,
+                            "field_width": 11,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "adt_ptr",
+                            "lsb_mem_word_offset": 13,
+                            "field_name": "action_addr",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "field_name": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 42,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 32,
+                            "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": 40,
+                            "field_name": "--padding_40_41--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 64,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 48,
+                            "field_name": "--padding_48_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": 7,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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"
+                          },
+                          {
+                            "start_bit": 7,
+                            "enable_pfe": true,
+                            "field_width": 10,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "sel_ptr",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "meter_addr",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 5,
+                            "enable_pfe": false,
+                            "field_width": 11,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "adt_ptr",
+                            "lsb_mem_word_offset": 13,
+                            "field_name": "action_addr",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "field_name": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 42,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 32,
+                            "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": 40,
+                            "field_name": "--padding_40_41--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 64,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 48,
+                            "field_name": "--padding_48_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": 536870945,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "next.l3_routing",
+          "handle": 536870942,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 }
+          ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            }
+          ]
+        },
+        {
+          "name": "next.mpls_routing_v4",
+          "handle": 536870943,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 },
+            {
+              "name": "label",
+              "start_bit": 105,
+              "position": 3,
+              "bit_width": 20
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B7" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "34887" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.label.4-19" },
+              "src": [ { "type": "action_param", "name": "label.4-19" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B2" },
+              "src": [ { "type": "action_param", "name": "$data0" } ]
+            }
+          ]
+        },
+        {
+          "name": "next.mpls_routing_v6",
+          "handle": 536870944,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 },
+            {
+              "name": "label",
+              "start_bit": 105,
+              "position": 3,
+              "bit_width": 20
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B7" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "34887" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.label.4-19" },
+              "src": [ { "type": "action_param", "name": "label.4-19" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B2" },
+              "src": [ { "type": "action_param", "name": "$data0" } ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 50331649,
+      "name": "next.ecmp_selector",
+      "table_type": "selection",
+      "size": 1024,
+      "selection_type": "fair",
+      "how_referenced": "indirect",
+      "max_port_pool_size": 120,
+      "bound_to_action_data_table_handle": 33554434,
+      "stage_tables": [
+        {
+          "stage_number": 7,
+          "size": 1024,
+          "stage_table_type": "selection",
+          "logical_table_id": 2,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [ { "memory_units": [ 90 ], "vpns": [ 0 ] } ],
+            "spare_bank_memory_unit": 91
+          },
+          "meter_alu_index": 3
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 33554434,
+      "name": "next.ecmp_selector",
+      "table_type": "action",
+      "size": 64,
+      "stage_tables": [
+        {
+          "stage_number": 7,
+          "size": 262144,
+          "stage_table_type": "action_data",
+          "logical_table_id": 2,
+          "pack_format": [
+            {
+              "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": 256,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 1,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870945
+            },
+            {
+              "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": 9,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 48,
+                      "field_name": "port_num"
+                    },
+                    {
+                      "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": 48,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_47--"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 7,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 57,
+                      "field_name": "--padding_57_63--"
+                    },
+                    {
+                      "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": 536870942
+            },
+            {
+              "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": 536870943
+            },
+            {
+              "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": 536870944
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [ { "memory_units": [ 89, 92 ], "vpns": [ 0 ] } ],
+            "spare_bank_memory_unit": [ 92, 89 ]
+          }
+        }
+      ],
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870945,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "next.l3_routing",
+          "handle": 536870942,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 }
+          ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            }
+          ]
+        },
+        {
+          "name": "next.mpls_routing_v4",
+          "handle": 536870943,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 },
+            {
+              "name": "label",
+              "start_bit": 105,
+              "position": 3,
+              "bit_width": 20
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B7" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "34887" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.label.4-19" },
+              "src": [ { "type": "action_param", "name": "label.4-19" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B2" },
+              "src": [ { "type": "action_param", "name": "$data0" } ]
+            }
+          ]
+        },
+        {
+          "name": "next.mpls_routing_v6",
+          "handle": 536870944,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 },
+            {
+              "name": "label",
+              "start_bit": 105,
+              "position": 3,
+              "bit_width": 20
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B7" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "34887" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.label.4-19" },
+              "src": [ { "type": "action_param", "name": "label.4-19" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B2" },
+              "src": [ { "type": "action_param", "name": "$data0" } ]
+            }
+          ]
+        }
+      ],
+      "how_referenced": "indirect"
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108874,
+      "name": "next.hashed_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 7,
+          "size": 4096,
+          "stage_table_type": "statistics",
+          "logical_table_id": 2,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 78 ], "vpns": [ 0 ] },
+              { "memory_units": [ 79 ], "vpns": [ 1 ] },
+              { "memory_units": [ 80 ], "vpns": [ 2 ] }
+            ],
+            "spare_bank_memory_unit": 80
+          },
+          "stats_alu_index": 3
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777232,
+      "name": "tbl_act_5",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 8,
+            "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": 0,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "result_physical_buses": [ 1 ],
+            "action_format": [
+              {
+                "action_name": "act_5",
+                "action_handle": 536870946,
+                "table_name": "tbl_act_11",
+                "next_table": 0,
+                "next_table_full": 129,
+                "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_5",
+          "handle": 536870946,
+          "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": "ethernet.ether_type" },
+              "src": [ { "type": "phv", "name": "H8" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "0" },
+                { "type": "phv", "name": "B8" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870946,
+      "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": 16777233,
+      "name": "tbl_act_3",
+      "table_type": "match",
+      "size": 512,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 8,
+            "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": 0,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "result_physical_buses": [ 0 ],
+            "action_format": [
+              {
+                "action_name": "act_3",
+                "action_handle": 536870947,
+                "table_name": "next_broadcast",
+                "next_table": 0,
+                "next_table_full": 130,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 65,
+                "immediate_fields": []
+              }
+            ],
+            "hash_functions": []
+          }
+        ],
+        "match_type": "match_with_no_key",
+        "uses_dynamic_key_masks": false
+      },
+      "actions": [
+        {
+          "name": "act_3",
+          "handle": 536870947,
+          "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": []
+        }
+      ],
+      "default_action_handle": 536870947,
+      "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": true,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "indirect",
+          "handle": 67108875,
+          "name": "port_counters_control.egress_port_counter"
+        }
+      ],
+      "stateful_table_refs": []
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108875,
+      "name": "port_counters_control.egress_port_counter",
+      "table_type": "statistics",
+      "size": 511,
+      "stage_tables": [
+        {
+          "stage_number": 8,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 1,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 54 ], "vpns": [ 0 ] },
+              { "memory_units": [ 55 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 55
+          },
+          "stats_alu_index": 2
+        }
+      ],
+      "how_referenced": "indirect",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777234,
+      "name": "next.broadcast",
+      "table_type": "match",
+      "size": 3072,
+      "action_data_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 33554435,
+          "name": "next_broadcast$action"
+        }
+      ],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108876,
+          "name": "next.broadcast_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "default_action_handle": 536870949,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "fabric_metadata.next_id",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "next_id"
+        }
+      ],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 8,
+            "size": 3072,
+            "stage_table_type": "hash_match",
+            "logical_table_id": 2,
+            "has_attached_gateway": false,
+            "hash_functions": [
+              {
+                "hash_bits": [
+                  {
+                    "hash_bit": 0,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 20,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "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": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 1,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 17,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "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": 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": 1,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 2,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 17,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "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": 2,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 3,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 17,
+                        "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": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 4,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 19,
+                        "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": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 5,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 6,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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"
+                      },
+                      {
+                        "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": 6,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 7,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 8,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 17,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "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": 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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 9,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "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": 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": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 10,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 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": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 11,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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": 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": 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": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 12,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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": 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": 2,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 13,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 17,
+                        "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": 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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 14,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 21,
+                        "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": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 15,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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_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": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 16,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 22,
+                        "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": 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": 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": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 17,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 23,
+                        "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": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 18,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 17,
+                        "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": 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": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 19,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 17,
+                        "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": 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": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 20,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 19,
+                        "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": 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": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 21,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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"
+                      },
+                      {
+                        "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": 1,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 22,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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": 2,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 23,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 24,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 23,
+                        "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": 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": 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"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 25,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 26,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "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": 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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 27,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 18,
+                        "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": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 28,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 21,
+                        "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": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 29,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 20,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "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": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "action_format": [
+              {
+                "action_name": "NoAction",
+                "action_handle": 536870949,
+                "table_name": "--END_OF_PIPELINE--",
+                "next_table": 0,
+                "next_table_full": 255,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 65,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.set_mcast_group",
+                "action_handle": 536870948,
+                "table_name": "--END_OF_PIPELINE--",
+                "next_table": 0,
+                "next_table_full": 255,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 66,
+                "immediate_fields": [
+                  {
+                    "param_name": "gid",
+                    "param_type": "parameter",
+                    "param_shift": 0,
+                    "dest_start": 16,
+                    "dest_width": 16
+                  },
+                  {
+                    "param_name": "smac",
+                    "param_type": "parameter",
+                    "param_shift": 0,
+                    "dest_start": 0,
+                    "dest_width": 16
+                  }
+                ]
+              }
+            ],
+            "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": 8,
+                "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 1,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 34,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 48,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 33,
+                            "field_name": "--padding_33_33--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 56,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 56,
+                            "field_name": "--padding_56_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": 8,
+                "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 1,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 34,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 48,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 33,
+                            "field_name": "--padding_33_33--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 56,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 56,
+                            "field_name": "--padding_56_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": 8,
+                "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 1,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 34,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 48,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 33,
+                            "field_name": "--padding_33_33--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 56,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 56,
+                            "field_name": "--padding_56_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": 536870949,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "next.set_mcast_group",
+          "handle": 536870948,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            { "name": "gid", "start_bit": 0, "position": 0, "bit_width": 16 },
+            { "name": "smac", "start_bit": 16, "position": 1, "bit_width": 48 }
+          ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.mcast_grp_a" },
+              "src": [ { "type": "immediate", "name": "gid" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "immediate", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108876,
+      "name": "next.broadcast_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 8,
+          "size": 4096,
+          "stage_table_type": "statistics",
+          "logical_table_id": 2,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 78 ], "vpns": [ 0 ] },
+              { "memory_units": [ 79 ], "vpns": [ 1 ] },
+              { "memory_units": [ 80 ], "vpns": [ 2 ] }
+            ],
+            "spare_bank_memory_unit": 80
+          },
+          "stats_alu_index": 3
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 33554435,
+      "name": "next_broadcast$action",
+      "table_type": "action",
+      "size": 4096,
+      "stage_tables": [
+        {
+          "stage_number": 8,
+          "size": 4096,
+          "stage_table_type": "action_data",
+          "logical_table_id": 2,
+          "pack_format": [
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 4,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 3,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 96,
+                      "field_name": "--padding_0_31--"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 2,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "--padding_0_31--"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 1,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 32,
+                      "field_name": "--padding_0_31--"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_31--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870949
+            },
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 4,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 3,
+                  "fields": [
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 96,
+                      "field_name": "smac"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 2,
+                  "fields": [
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "smac"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 1,
+                  "fields": [
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 32,
+                      "field_name": "smac"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "smac"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870948
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [ { "memory_units": [ 90 ], "vpns": [ 0 ] } ],
+            "spare_bank_memory_unit": 90
+          }
+        }
+      ],
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870949,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "next.set_mcast_group",
+          "handle": 536870948,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            { "name": "gid", "start_bit": 0, "position": 0, "bit_width": 16 },
+            { "name": "smac", "start_bit": 16, "position": 1, "bit_width": 48 }
+          ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.mcast_grp_a" },
+              "src": [ { "type": "immediate", "name": "gid" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "immediate", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            }
+          ]
+        }
+      ],
+      "how_referenced": "direct"
+    }
+  ],
+  "configuration_cache": [
+    {
+      "fully_qualified_name": "pmarb.ebp18_reg.ebp_reg[0].epb_prsr_port_regs.chnl_ctrl[0]",
+      "name": "parser0_chnl_ctrl_0",
+      "value": "00a41fff"
+    },
+    {
+      "fully_qualified_name": "pmarb.ebp18_reg.ebp_reg[0].epb_prsr_port_regs.chnl_ctrl[1]",
+      "name": "parser0_chnl_ctrl_1",
+      "value": "00a41fff"
+    },
+    {
+      "fully_qualified_name": "pmarb.ebp18_reg.ebp_reg[0].epb_prsr_port_regs.chnl_ctrl[2]",
+      "name": "parser0_chnl_ctrl_2",
+      "value": "00a41fff"
+    },
+    {
+      "fully_qualified_name": "pmarb.ebp18_reg.ebp_reg[0].epb_prsr_port_regs.chnl_ctrl[3]",
+      "name": "parser0_chnl_ctrl_3",
+      "value": "00a41fff"
+    },
+    {
+      "fully_qualified_name": "pmarb.ebp18_reg.ebp_reg[0].epb_prsr_port_regs.multi_threading",
+      "name": "parser0_multi_threading",
+      "value": "19522020"
+    },
+    {
+      "fully_qualified_name": "mau[0].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_0_match_input_xbar_din_power_ctl",
+      "value": "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[1].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_1_match_input_xbar_din_power_ctl",
+      "value": "0000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[2].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_2_match_input_xbar_din_power_ctl",
+      "value": "0000000000000000000000000000000000000080000000010000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[2].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_2_parity_group_mask",
+      "value": "00000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[3].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_3_match_input_xbar_din_power_ctl",
+      "value": "0000000100000000000000000000000000000000000000000000000000000000000000200000001200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[3].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_3_parity_group_mask",
+      "value": "00000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[4].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_4_match_input_xbar_din_power_ctl",
+      "value": "00000009000000000000000000000000000000040000000000000000000000000000001c0000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[4].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_4_parity_group_mask",
+      "value": "00000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[5].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_5_match_input_xbar_din_power_ctl",
+      "value": "0000000f00000000000000000000000000000043000000000000000000000000000000680000001e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[6].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_6_match_input_xbar_din_power_ctl",
+      "value": "0000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[6].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_6_parity_group_mask",
+      "value": "00000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[7].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_7_match_input_xbar_din_power_ctl",
+      "value": "0000001c000000000000000000000000000000c0000000000000000000000000000000400000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[7].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_7_parity_group_mask",
+      "value": "00000001000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[8].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_8_match_input_xbar_din_power_ctl",
+      "value": "0000001000000000000000000000000000000000000000010000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[8].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_8_parity_group_mask",
+      "value": "00000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/mavericks/fabric.p4info b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/mavericks/fabric.p4info
new file mode 100644
index 0000000..28fc18c
--- /dev/null
+++ b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/mavericks/fabric.p4info
@@ -0,0 +1,741 @@
+tables {
+  preamble {
+    id: 33578399
+    name: "filtering.ingress_port_vlan"
+    alias: "ingress_port_vlan"
+  }
+  match_fields {
+    id: 1
+    name: "standard_metadata.ingress_port"
+    bitwidth: 9
+    match_type: EXACT
+  }
+  match_fields {
+    id: 2
+    name: "hdr.vlan_tag.is_valid"
+    bitwidth: 1
+    match_type: EXACT
+  }
+  match_fields {
+    id: 3
+    name: "hdr.vlan_tag.vlan_id"
+    bitwidth: 12
+    match_type: TERNARY
+  }
+  action_refs {
+    id: 16794505
+  }
+  action_refs {
+    id: 16782367
+  }
+  action_refs {
+    id: 16819938
+  }
+  action_refs {
+    id: 16826365
+  }
+  const_default_action_id: 16819938
+  direct_resource_ids: 302015144
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33619540
+    name: "filtering.fwd_classifier"
+    alias: "fwd_classifier"
+  }
+  match_fields {
+    id: 1
+    name: "standard_metadata.ingress_port"
+    bitwidth: 9
+    match_type: EXACT
+  }
+  match_fields {
+    id: 2
+    name: "hdr.ethernet.dst_addr"
+    bitwidth: 48
+    match_type: EXACT
+  }
+  match_fields {
+    id: 3
+    name: "fabric_metadata.original_ether_type"
+    bitwidth: 16
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16838162
+  }
+  const_default_action_id: 16838162
+  direct_resource_ids: 302033694
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33569146
+    name: "forwarding.bridging"
+    alias: "bridging"
+  }
+  match_fields {
+    id: 1
+    name: "hdr.vlan_tag.vlan_id"
+    bitwidth: 12
+    match_type: EXACT
+  }
+  match_fields {
+    id: 2
+    name: "hdr.ethernet.dst_addr"
+    bitwidth: 48
+    match_type: TERNARY
+  }
+  action_refs {
+    id: 16829931
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 302047449
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33565386
+    name: "forwarding.mpls"
+    alias: "mpls"
+  }
+  match_fields {
+    id: 1
+    name: "hdr.mpls.label"
+    bitwidth: 20
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16842717
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 302001577
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33589684
+    name: "forwarding.unicast_v4"
+    alias: "unicast_v4"
+  }
+  match_fields {
+    id: 1
+    name: "hdr.ipv4.dst_addr"
+    bitwidth: 32
+    match_type: LPM
+  }
+  action_refs {
+    id: 16829931
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 302038636
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33615204
+    name: "forwarding.multicast_v4"
+    alias: "multicast_v4"
+  }
+  match_fields {
+    id: 1
+    name: "hdr.vlan_tag.vlan_id"
+    bitwidth: 12
+    match_type: EXACT
+  }
+  match_fields {
+    id: 2
+    name: "hdr.ipv4.dst_addr"
+    bitwidth: 32
+    match_type: LPM
+  }
+  action_refs {
+    id: 16829931
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 302009236
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33587782
+    name: "forwarding.acl"
+    alias: "acl"
+  }
+  match_fields {
+    id: 1
+    name: "standard_metadata.ingress_port"
+    bitwidth: 9
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 2
+    name: "fabric_metadata.ip_proto"
+    bitwidth: 8
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 3
+    name: "fabric_metadata.l4_src_port"
+    bitwidth: 16
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 4
+    name: "fabric_metadata.l4_dst_port"
+    bitwidth: 16
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 5
+    name: "fabric_metadata.original_ether_type"
+    bitwidth: 16
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 6
+    name: "hdr.ethernet.dst_addr"
+    bitwidth: 48
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 7
+    name: "hdr.ethernet.src_addr"
+    bitwidth: 48
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 8
+    name: "hdr.vlan_tag.vlan_id"
+    bitwidth: 12
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 9
+    name: "hdr.ipv4.src_addr"
+    bitwidth: 32
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 10
+    name: "hdr.ipv4.dst_addr"
+    bitwidth: 32
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 11
+    name: "hdr.icmp.icmp_type"
+    bitwidth: 8
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 12
+    name: "hdr.icmp.icmp_code"
+    bitwidth: 8
+    match_type: TERNARY
+  }
+  action_refs {
+    id: 16829931
+  }
+  action_refs {
+    id: 16805452
+  }
+  action_refs {
+    id: 16815978
+  }
+  action_refs {
+    id: 16819938
+  }
+  const_default_action_id: 16819938
+  direct_resource_ids: 302000008
+  size: 256
+}
+tables {
+  preamble {
+    id: 33615740
+    name: "next.simple"
+    alias: "simple"
+  }
+  match_fields {
+    id: 1
+    name: "fabric_metadata.next_id"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16818315
+  }
+  action_refs {
+    id: 16837690
+  }
+  action_refs {
+    id: 16804266
+  }
+  action_refs {
+    id: 16841192
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 301991179
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33569488
+    name: "next.hashed"
+    alias: "hashed"
+  }
+  match_fields {
+    id: 1
+    name: "fabric_metadata.next_id"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16804266
+  }
+  action_refs {
+    id: 16841192
+  }
+  action_refs {
+    id: 16788519
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  implementation_id: 285225078
+  direct_resource_ids: 301993193
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33608545
+    name: "next.broadcast"
+    alias: "broadcast"
+  }
+  match_fields {
+    id: 1
+    name: "fabric_metadata.next_id"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16778974
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 301995093
+  size: 1024
+}
+actions {
+  preamble {
+    id: 16819938
+    name: "nop"
+    alias: "nop"
+  }
+}
+actions {
+  preamble {
+    id: 16800567
+    name: "NoAction"
+    alias: "NoAction"
+  }
+}
+actions {
+  preamble {
+    id: 16826365
+    name: "filtering.drop"
+    alias: "filtering.drop"
+  }
+}
+actions {
+  preamble {
+    id: 16782367
+    name: "filtering.set_vlan"
+    alias: "set_vlan"
+  }
+  params {
+    id: 1
+    name: "new_vlan_id"
+    bitwidth: 12
+  }
+}
+actions {
+  preamble {
+    id: 16794505
+    name: "filtering.push_internal_vlan"
+    alias: "push_internal_vlan"
+  }
+  params {
+    id: 1
+    name: "new_vlan_id"
+    bitwidth: 12
+  }
+}
+actions {
+  preamble {
+    id: 16838162
+    name: "filtering.set_forwarding_type"
+    alias: "set_forwarding_type"
+  }
+  params {
+    id: 1
+    name: "fwd_type"
+    bitwidth: 3
+  }
+}
+actions {
+  preamble {
+    id: 16815978
+    name: "forwarding.drop"
+    alias: "forwarding.drop"
+  }
+}
+actions {
+  preamble {
+    id: 16829931
+    name: "forwarding.set_next_id"
+    alias: "set_next_id"
+  }
+  params {
+    id: 1
+    name: "next_id"
+    bitwidth: 32
+  }
+}
+actions {
+  preamble {
+    id: 16842717
+    name: "forwarding.pop_mpls_and_next"
+    alias: "pop_mpls_and_next"
+  }
+  params {
+    id: 1
+    name: "next_id"
+    bitwidth: 32
+  }
+}
+actions {
+  preamble {
+    id: 16805452
+    name: "forwarding.duplicate_to_controller"
+    alias: "duplicate_to_controller"
+  }
+}
+actions {
+  preamble {
+    id: 16818315
+    name: "next.output"
+    alias: "output"
+  }
+  params {
+    id: 1
+    name: "port_num"
+    bitwidth: 9
+  }
+}
+actions {
+  preamble {
+    id: 16837690
+    name: "next.set_vlan_output"
+    alias: "set_vlan_output"
+  }
+  params {
+    id: 1
+    name: "new_vlan_id"
+    bitwidth: 12
+  }
+  params {
+    id: 2
+    name: "port_num"
+    bitwidth: 9
+  }
+}
+actions {
+  preamble {
+    id: 16804266
+    name: "next.l3_routing"
+    alias: "l3_routing"
+  }
+  params {
+    id: 1
+    name: "port_num"
+    bitwidth: 9
+  }
+  params {
+    id: 2
+    name: "smac"
+    bitwidth: 48
+  }
+  params {
+    id: 3
+    name: "dmac"
+    bitwidth: 48
+  }
+}
+actions {
+  preamble {
+    id: 16778974
+    name: "next.set_mcast_group"
+    alias: "set_mcast_group"
+  }
+  params {
+    id: 1
+    name: "gid"
+    bitwidth: 16
+  }
+  params {
+    id: 2
+    name: "smac"
+    bitwidth: 48
+  }
+}
+actions {
+  preamble {
+    id: 16841192
+    name: "next.mpls_routing_v4"
+    alias: "mpls_routing_v4"
+  }
+  params {
+    id: 1
+    name: "port_num"
+    bitwidth: 9
+  }
+  params {
+    id: 2
+    name: "smac"
+    bitwidth: 48
+  }
+  params {
+    id: 3
+    name: "dmac"
+    bitwidth: 48
+  }
+  params {
+    id: 4
+    name: "label"
+    bitwidth: 20
+  }
+}
+actions {
+  preamble {
+    id: 16788519
+    name: "next.mpls_routing_v6"
+    alias: "mpls_routing_v6"
+  }
+  params {
+    id: 1
+    name: "port_num"
+    bitwidth: 9
+  }
+  params {
+    id: 2
+    name: "smac"
+    bitwidth: 48
+  }
+  params {
+    id: 3
+    name: "dmac"
+    bitwidth: 48
+  }
+  params {
+    id: 4
+    name: "label"
+    bitwidth: 20
+  }
+}
+action_profiles {
+  preamble {
+    id: 285225078
+    name: "next.ecmp_selector"
+    alias: "ecmp_selector"
+  }
+  table_ids: 33569488
+  with_selector: true
+  size: 64
+}
+counters {
+  preamble {
+    id: 302025528
+    name: "port_counters_control.egress_port_counter"
+    alias: "egress_port_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  size: 511
+}
+counters {
+  preamble {
+    id: 301999025
+    name: "port_counters_control.ingress_port_counter"
+    alias: "ingress_port_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  size: 511
+}
+direct_counters {
+  preamble {
+    id: 302015144
+    name: "filtering.ingress_port_vlan_counter"
+    alias: "ingress_port_vlan_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33578399
+}
+direct_counters {
+  preamble {
+    id: 302033694
+    name: "filtering.fwd_classifier_counter"
+    alias: "fwd_classifier_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33619540
+}
+direct_counters {
+  preamble {
+    id: 302047449
+    name: "forwarding.bridging_counter"
+    alias: "bridging_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33569146
+}
+direct_counters {
+  preamble {
+    id: 302001577
+    name: "forwarding.mpls_counter"
+    alias: "mpls_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33565386
+}
+direct_counters {
+  preamble {
+    id: 302038636
+    name: "forwarding.unicast_v4_counter"
+    alias: "unicast_v4_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33589684
+}
+direct_counters {
+  preamble {
+    id: 302009236
+    name: "forwarding.multicast_v4_counter"
+    alias: "multicast_v4_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33615204
+}
+direct_counters {
+  preamble {
+    id: 302000008
+    name: "forwarding.acl_counter"
+    alias: "acl_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33587782
+}
+direct_counters {
+  preamble {
+    id: 301991179
+    name: "next.simple_counter"
+    alias: "simple_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33615740
+}
+direct_counters {
+  preamble {
+    id: 301993193
+    name: "next.hashed_counter"
+    alias: "hashed_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33569488
+}
+direct_counters {
+  preamble {
+    id: 301995093
+    name: "next.broadcast_counter"
+    alias: "broadcast_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33608545
+}
+controller_packet_metadata {
+  preamble {
+    id: 2868941301
+    name: "packet_in"
+    annotations: "@controller_header(\"packet_in\")"
+  }
+  metadata {
+    id: 1
+    name: "ingress_port"
+    bitwidth: 9
+  }
+  metadata {
+    id: 2
+    name: "_pad"
+    bitwidth: 7
+  }
+}
+controller_packet_metadata {
+  preamble {
+    id: 2868916615
+    name: "packet_out"
+    annotations: "@not_extracted_in_egress()"
+    annotations: "@controller_header(\"packet_out\")"
+  }
+  metadata {
+    id: 1
+    name: "egress_port"
+    bitwidth: 9
+  }
+  metadata {
+    id: 2
+    name: "_pad"
+    bitwidth: 7
+  }
+}
diff --git a/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/mavericks/tofino.bin b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/mavericks/tofino.bin
new file mode 100644
index 0000000..61eaab9
--- /dev/null
+++ b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/mavericks/tofino.bin
Binary files differ
diff --git a/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/montara/context.json b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/montara/context.json
new file mode 100644
index 0000000..3e53814
--- /dev/null
+++ b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/montara/context.json
@@ -0,0 +1,41703 @@
+{
+  "build_date": "02/15/18 04:16:22",
+  "compiler_version": "6.0.0-alpha.4",
+  "program_name": "main",
+  "learn_quanta": [],
+  "dynamic_hash_calculations": [],
+  "parser": { "ingress": [], "egress": [] },
+  "phv_allocation": [
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 1,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 2,
+          "records": [
+            {
+              "position_offset": 80,
+              "field_name": "ipv4.src_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": 68,
+              "field_name": "ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 44,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 92,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 89,
+              "field_name": "mpls.bos",
+              "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": 67,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 93,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 71,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 40,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": 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": 2,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 41,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 66,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 88,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 94,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "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_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 97,
+                  "header_name": "tcp",
+                  "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": 124,
+                  "header_name": "udp",
+                  "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": 133,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 62,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 26,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 60,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 134,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 140,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 37,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 98,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 3,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 67,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 104,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 131,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 42,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 118,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 127,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 46,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 129,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 122,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 125,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 339,
+          "records": [
+            {
+              "position_offset": 102,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 340,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 80,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 45,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 67,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 73,
+                  "header_name": "packet_in",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 81,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 78,
+                  "header_name": "tcp",
+                  "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": 105,
+                  "header_name": "udp",
+                  "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": 114,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 43,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "ipv4.src_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": 259,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 288,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 57,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 289,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 30,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 71,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 68,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 115,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 121,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 91,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 85,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 108,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 51,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 53,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 55,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 89,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 83,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 101,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 0
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 1,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 2,
+          "records": [
+            {
+              "position_offset": 80,
+              "field_name": "ipv4.src_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": 68,
+              "field_name": "ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 44,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 92,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 89,
+              "field_name": "mpls.bos",
+              "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": 67,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 93,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 71,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 40,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": 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": 2,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 41,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 66,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 88,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 94,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "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_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 97,
+                  "header_name": "tcp",
+                  "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": 124,
+                  "header_name": "udp",
+                  "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": 133,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 62,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 26,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 60,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 134,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 140,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 37,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 98,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 3,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 67,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 104,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 131,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 42,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 118,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 127,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 46,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 129,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 122,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 125,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 339,
+          "records": [
+            {
+              "position_offset": 102,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 340,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 80,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 45,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 67,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 73,
+                  "header_name": "packet_in",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 81,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 78,
+                  "header_name": "tcp",
+                  "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": 105,
+                  "header_name": "udp",
+                  "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": 114,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 43,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "ipv4.src_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": 259,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 288,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 57,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 289,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 30,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 71,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 68,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 115,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 121,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 91,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 85,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 108,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 51,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 53,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 55,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 89,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 83,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 101,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 1
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 1,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 2,
+          "records": [
+            {
+              "position_offset": 80,
+              "field_name": "ipv4.src_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": 68,
+              "field_name": "ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 44,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 92,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 89,
+              "field_name": "mpls.bos",
+              "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": 67,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 93,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 71,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 40,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": 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": 2,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 41,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 66,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 88,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 94,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "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_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 97,
+                  "header_name": "tcp",
+                  "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": 124,
+                  "header_name": "udp",
+                  "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": 133,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 62,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 26,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 60,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 134,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 140,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 37,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 98,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 3,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 67,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 104,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 131,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 42,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 118,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 127,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 46,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 129,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 122,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 125,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 339,
+          "records": [
+            {
+              "position_offset": 102,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 340,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 80,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 45,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 67,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 73,
+                  "header_name": "packet_in",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 81,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 78,
+                  "header_name": "tcp",
+                  "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": 105,
+                  "header_name": "udp",
+                  "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": 114,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 43,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "ipv4.src_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": 259,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 288,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 57,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 289,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 30,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 71,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 68,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 115,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 121,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 91,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 85,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 108,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 51,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 53,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 55,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 89,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 83,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 101,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 2
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 1,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 2,
+          "records": [
+            {
+              "position_offset": 80,
+              "field_name": "ipv4.src_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": 68,
+              "field_name": "ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 44,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 92,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 89,
+              "field_name": "mpls.bos",
+              "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": 67,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 93,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 71,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 40,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": 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": 2,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 41,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 66,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 88,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 94,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "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_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 97,
+                  "header_name": "tcp",
+                  "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": 124,
+                  "header_name": "udp",
+                  "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": 133,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 62,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 26,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 60,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 134,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 140,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 37,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 98,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 3,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 67,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 104,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 131,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 42,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 118,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 127,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 46,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 129,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 122,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 125,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 339,
+          "records": [
+            {
+              "position_offset": 102,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 340,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 80,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 45,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 67,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 73,
+                  "header_name": "packet_in",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 81,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 78,
+                  "header_name": "tcp",
+                  "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": 105,
+                  "header_name": "udp",
+                  "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": 114,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 43,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "ipv4.src_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": 259,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 288,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 57,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 289,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 30,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 71,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 68,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 115,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 121,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 91,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 85,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 108,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 51,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 53,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 55,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 89,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 83,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 101,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 3
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 1,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 2,
+          "records": [
+            {
+              "position_offset": 80,
+              "field_name": "ipv4.src_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": 68,
+              "field_name": "ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 44,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 92,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 89,
+              "field_name": "mpls.bos",
+              "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": 67,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 93,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 71,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 40,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": 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": 2,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 41,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 66,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 88,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 94,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "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_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 97,
+                  "header_name": "tcp",
+                  "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": 124,
+                  "header_name": "udp",
+                  "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": 133,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 62,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 26,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 60,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 134,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 140,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 37,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 98,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 3,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 67,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 104,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 131,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 42,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 118,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 127,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 46,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 129,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 122,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 125,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 339,
+          "records": [
+            {
+              "position_offset": 102,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 340,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 80,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 45,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 67,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 73,
+                  "header_name": "packet_in",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 81,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 78,
+                  "header_name": "tcp",
+                  "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": 105,
+                  "header_name": "udp",
+                  "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": 114,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 43,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "ipv4.src_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": 259,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 288,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 57,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 289,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 30,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 71,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 68,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 115,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 121,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 91,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 85,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 108,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 51,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 53,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 55,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 89,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 83,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 101,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 4
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 1,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 2,
+          "records": [
+            {
+              "position_offset": 80,
+              "field_name": "ipv4.src_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": 68,
+              "field_name": "ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 44,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 92,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 89,
+              "field_name": "mpls.bos",
+              "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": 67,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 93,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 71,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 40,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": 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": 2,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 41,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 66,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 88,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 94,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "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_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 97,
+                  "header_name": "tcp",
+                  "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": 124,
+                  "header_name": "udp",
+                  "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": 133,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 62,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 26,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 60,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 134,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 140,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 37,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 98,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 3,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 67,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 104,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 131,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 42,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 118,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 127,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 46,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 129,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 122,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 125,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 339,
+          "records": [
+            {
+              "position_offset": 102,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 340,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 80,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 45,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 67,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 73,
+                  "header_name": "packet_in",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 81,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 78,
+                  "header_name": "tcp",
+                  "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": 105,
+                  "header_name": "udp",
+                  "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": 114,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 43,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "ipv4.src_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": 259,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 288,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 57,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 289,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 30,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 71,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 68,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 115,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 121,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 91,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 85,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 108,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 51,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 53,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 55,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 89,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 83,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 101,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 5
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 1,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 2,
+          "records": [
+            {
+              "position_offset": 80,
+              "field_name": "ipv4.src_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": 68,
+              "field_name": "ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 44,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 92,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 89,
+              "field_name": "mpls.bos",
+              "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": 67,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 93,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 71,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 40,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": 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": 2,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 41,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 66,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 88,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 94,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "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_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 97,
+                  "header_name": "tcp",
+                  "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": 124,
+                  "header_name": "udp",
+                  "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": 133,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 62,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 26,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 60,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 134,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 140,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 37,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 98,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 3,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 67,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 104,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 131,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 42,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 118,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 127,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 46,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 129,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 122,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 125,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 339,
+          "records": [
+            {
+              "position_offset": 102,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 340,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 80,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 45,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 67,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 73,
+                  "header_name": "packet_in",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 81,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 78,
+                  "header_name": "tcp",
+                  "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": 105,
+                  "header_name": "udp",
+                  "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": 114,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 43,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "ipv4.src_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": 259,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 288,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 57,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 289,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 30,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 71,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 68,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 115,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 121,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 91,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 85,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 108,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 51,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 53,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 55,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 89,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 83,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 101,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 6
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 1,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 2,
+          "records": [
+            {
+              "position_offset": 80,
+              "field_name": "ipv4.src_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": 68,
+              "field_name": "ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 44,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 92,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 89,
+              "field_name": "mpls.bos",
+              "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": 67,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 93,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 71,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 40,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": 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": 2,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 41,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 66,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 88,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 94,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "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_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 97,
+                  "header_name": "tcp",
+                  "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": 124,
+                  "header_name": "udp",
+                  "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": 133,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 62,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 26,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 60,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 134,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 140,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 37,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 98,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 3,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 67,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 104,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 131,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 42,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 118,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 127,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 46,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 129,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 122,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 125,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 339,
+          "records": [
+            {
+              "position_offset": 102,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 340,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 80,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 45,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 67,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 73,
+                  "header_name": "packet_in",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 81,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 78,
+                  "header_name": "tcp",
+                  "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": 105,
+                  "header_name": "udp",
+                  "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": 114,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 43,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "ipv4.src_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": 259,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 288,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 57,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 289,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 30,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 71,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 68,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 115,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 121,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 91,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 85,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 108,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 51,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 53,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 55,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 89,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 83,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 101,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 7
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 1,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 2,
+          "records": [
+            {
+              "position_offset": 80,
+              "field_name": "ipv4.src_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": 68,
+              "field_name": "ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 44,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 92,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 89,
+              "field_name": "mpls.bos",
+              "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": 67,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 93,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 71,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 40,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": 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": 2,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 41,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 66,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 88,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 94,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "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_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 97,
+                  "header_name": "tcp",
+                  "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": 124,
+                  "header_name": "udp",
+                  "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": 133,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 62,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 26,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 60,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 134,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 140,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 37,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 98,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 3,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 67,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 104,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 131,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 42,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 118,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 127,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 46,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 129,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 122,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 125,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 339,
+          "records": [
+            {
+              "position_offset": 102,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 340,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 80,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 45,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 67,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 73,
+                  "header_name": "packet_in",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 81,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 78,
+                  "header_name": "tcp",
+                  "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": 105,
+                  "header_name": "udp",
+                  "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": 114,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 43,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "ipv4.src_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": 259,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 288,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 57,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 289,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 30,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 71,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 68,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 115,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 121,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 91,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 85,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 108,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 51,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 53,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 55,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 89,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 83,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 101,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 8
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 1,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 2,
+          "records": [
+            {
+              "position_offset": 80,
+              "field_name": "ipv4.src_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": 68,
+              "field_name": "ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 44,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 92,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 89,
+              "field_name": "mpls.bos",
+              "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": 67,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 93,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 71,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 40,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": 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": 2,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 41,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 66,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 88,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 94,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "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_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 97,
+                  "header_name": "tcp",
+                  "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": 124,
+                  "header_name": "udp",
+                  "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": 133,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 62,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 26,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 60,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 134,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 140,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 37,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 98,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 3,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 67,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 104,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 131,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 42,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 118,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 127,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 46,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 129,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 122,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 125,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 339,
+          "records": [
+            {
+              "position_offset": 102,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 340,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 80,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 45,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 67,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 73,
+                  "header_name": "packet_in",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 81,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 78,
+                  "header_name": "tcp",
+                  "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": 105,
+                  "header_name": "udp",
+                  "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": 114,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 43,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "ipv4.src_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": 259,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 288,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 57,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 289,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 30,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 71,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 68,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 115,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 121,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 91,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 85,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 108,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 51,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 53,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 55,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 89,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 83,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 101,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 9
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 1,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 2,
+          "records": [
+            {
+              "position_offset": 80,
+              "field_name": "ipv4.src_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": 68,
+              "field_name": "ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 44,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 92,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 89,
+              "field_name": "mpls.bos",
+              "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": 67,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 93,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 71,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 40,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": 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": 2,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 41,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 66,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 88,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 94,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "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_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 97,
+                  "header_name": "tcp",
+                  "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": 124,
+                  "header_name": "udp",
+                  "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": 133,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 62,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 26,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 60,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 134,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 140,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 37,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 98,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 3,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 67,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 104,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 131,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 42,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 118,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 127,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 46,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 129,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 122,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 125,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 339,
+          "records": [
+            {
+              "position_offset": 102,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 340,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 80,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 45,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 67,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 73,
+                  "header_name": "packet_in",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 81,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 78,
+                  "header_name": "tcp",
+                  "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": 105,
+                  "header_name": "udp",
+                  "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": 114,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 43,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "ipv4.src_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": 259,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 288,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 57,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 289,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 30,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 71,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 68,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 115,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 121,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 91,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 85,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 108,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 51,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 53,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 55,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 89,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 83,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 101,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 10
+    },
+    {
+      "ingress": [
+        {
+          "phv_number": 0,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 1,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 2,
+          "records": [
+            {
+              "position_offset": 80,
+              "field_name": "ipv4.src_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": 68,
+              "field_name": "ipv4.dst_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": 4,
+          "records": [
+            {
+              "position_offset": 33,
+              "field_name": "fabric_metadata.next_id",
+              "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": 64,
+          "records": [
+            {
+              "position_offset": 45,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 65,
+          "records": [
+            {
+              "position_offset": 44,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 66,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 92,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 89,
+              "field_name": "mpls.bos",
+              "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": 67,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "$bridged_metadata_indicator",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 68,
+          "records": [
+            {
+              "position_offset": 86,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 69,
+          "records": [
+            {
+              "position_offset": 93,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 70,
+          "records": [
+            {
+              "position_offset": 28,
+              "field_name": "fabric_metadata.ip_proto",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 71,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "$always_deparse",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 40,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 4,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": 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": 2,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 41,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 66,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 88,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 94,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 72,
+          "records": [
+            {
+              "position_offset": 39,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "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_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 97,
+                  "header_name": "tcp",
+                  "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": 124,
+                  "header_name": "udp",
+                  "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": 133,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 128,
+          "records": [
+            {
+              "position_offset": 62,
+              "field_name": "ig_intr_md_for_tm.mcast_grp_a",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 129,
+          "records": [
+            {
+              "position_offset": 64,
+              "field_name": "ig_intr_md_for_tm.ucast_egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 130,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "packet_out.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 26,
+              "field_name": "fabric_metadata.fwd_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 60,
+              "field_name": "ig_intr_md_for_tm.drop_ctl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 2,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 131,
+          "records": [
+            {
+              "position_offset": 138,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 134,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 140,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 132,
+          "records": [
+            {
+              "position_offset": 90,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 133,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 134,
+          "records": [
+            {
+              "position_offset": 31,
+              "field_name": "fabric_metadata.l4_src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 135,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 136,
+          "records": [
+            {
+              "position_offset": 136,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 137,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 138,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 139,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "fabric_metadata.l4_dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 140,
+          "records": [
+            {
+              "position_offset": 37,
+              "field_name": "fabric_metadata.original_ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 260,
+          "records": [
+            {
+              "position_offset": 114,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 261,
+          "records": [
+            {
+              "position_offset": 98,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 50,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 292,
+          "records": [
+            {
+              "position_offset": 3,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 78,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 293,
+          "records": [
+            {
+              "position_offset": 8,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 67,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 294,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 326,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 104,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 131,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 42,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 327,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 118,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 127,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 46,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 328,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 72,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 329,
+          "records": [
+            {
+              "position_offset": 84,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 330,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 331,
+          "records": [
+            {
+              "position_offset": 108,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 129,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 48,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 338,
+          "records": [
+            {
+              "position_offset": 122,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 125,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 339,
+          "records": [
+            {
+              "position_offset": 102,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 340,
+          "records": [
+            {
+              "position_offset": 120,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "egress": [
+        {
+          "phv_number": 80,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 0,
+                  "header_name": "arp",
+                  "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": 11,
+                  "header_name": "ethernet",
+                  "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": 26,
+                  "header_name": "icmp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 5,
+              "phv_lsb": 5,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 5,
+                  "position_offset": 45,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 6,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 6,
+                  "position_offset": 67,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 73,
+                  "header_name": "packet_in",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 81,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 7,
+              "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": 78,
+                  "header_name": "tcp",
+                  "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": 105,
+                  "header_name": "udp",
+                  "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": 114,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 144,
+          "records": [
+            {
+              "position_offset": 9,
+              "field_name": "eg_intr_md.egress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 145,
+          "records": [
+            {
+              "position_offset": 76,
+              "field_name": "packet_in.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 74,
+              "field_name": "packet_in._pad",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 6,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 146,
+          "records": [
+            {
+              "position_offset": 43,
+              "field_name": "ig_intr_md.ingress_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 256,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 257,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 47,
+              "field_lsb": 16,
+              "field_width": 6,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 258,
+          "records": [
+            {
+              "position_offset": 59,
+              "field_name": "ipv4.src_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": 259,
+          "records": [
+            {
+              "position_offset": 47,
+              "field_name": "ipv4.dst_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": 264,
+          "records": [
+            {
+              "position_offset": 95,
+              "field_name": "tcp.seq_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 265,
+          "records": [
+            {
+              "position_offset": 79,
+              "field_name": "tcp.ack_no",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 35,
+              "field_name": "icmp.timestamp",
+              "field_msb": 63,
+              "field_lsb": 32,
+              "field_width": 8,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 288,
+          "records": [
+            {
+              "position_offset": 1,
+              "field_name": "arp.hw_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 66,
+              "field_name": "ipv4.version",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 57,
+              "field_name": "ipv4.ihl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 289,
+          "records": [
+            {
+              "position_offset": 6,
+              "field_name": "arp.proto_addr_len",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 30,
+              "field_name": "icmp.icmp_type",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 290,
+          "records": [
+            {
+              "position_offset": 46,
+              "field_name": "ipv4.diffserv",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 291,
+          "records": [
+            {
+              "position_offset": 29,
+              "field_name": "icmp.icmp_code",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 296,
+          "records": [
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 3,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 7,
+              "phv_lsb": 4,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 71,
+              "field_name": "mpls.tc",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 68,
+              "field_name": "mpls.bos",
+              "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": 297,
+          "records": [
+            {
+              "position_offset": 65,
+              "field_name": "ipv4.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 298,
+          "records": [
+            {
+              "position_offset": 58,
+              "field_name": "ipv4.protocol",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 299,
+          "records": [
+            {
+              "position_offset": 72,
+              "field_name": "mpls.ttl",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 7,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 320,
+          "records": [
+            {
+              "position_offset": 119,
+              "field_name": "vlan_tag.pri",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 115,
+              "field_name": "vlan_tag.cfi",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 121,
+              "field_name": "vlan_tag.vlan_id",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 321,
+          "records": [
+            {
+              "position_offset": 2,
+              "field_name": "arp.hw_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 99,
+              "field_name": "tcp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 112,
+              "field_name": "udp.src_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 27,
+              "field_name": "icmp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 322,
+          "records": [
+            {
+              "position_offset": 7,
+              "field_name": "arp.proto_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 69,
+              "field_name": "mpls.label",
+              "field_msb": 19,
+              "field_lsb": 4,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 323,
+          "records": [
+            {
+              "position_offset": 4,
+              "field_name": "arp.opcode",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 87,
+              "field_name": "tcp.data_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 12,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 93,
+              "field_name": "tcp.res",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 11,
+              "phv_lsb": 9,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 91,
+              "field_name": "tcp.ecn",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 8,
+              "phv_lsb": 6,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 85,
+              "field_name": "tcp.ctrl",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 5,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 108,
+              "field_name": "udp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 31,
+              "field_name": "icmp.identifier",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 324,
+          "records": [
+            {
+              "position_offset": 51,
+              "field_name": "ipv4.flags",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 13,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 53,
+              "field_name": "ipv4.frag_offset",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 12,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 325,
+          "records": [
+            {
+              "position_offset": 12,
+              "field_name": "ethernet.dst_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 332,
+          "records": [
+            {
+              "position_offset": 20,
+              "field_name": "ethernet.src_addr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 6,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 333,
+          "records": [
+            {
+              "position_offset": 18,
+              "field_name": "ethernet.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 334,
+          "records": [
+            {
+              "position_offset": 117,
+              "field_name": "vlan_tag.ether_type",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 335,
+          "records": [
+            {
+              "position_offset": 63,
+              "field_name": "ipv4.total_len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 336,
+          "records": [
+            {
+              "position_offset": 55,
+              "field_name": "ipv4.identification",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 337,
+          "records": [
+            {
+              "position_offset": 89,
+              "field_name": "tcp.dst_port",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 110,
+              "field_name": "udp.len",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 33,
+              "field_name": "icmp.sequence_number",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 344,
+          "records": [
+            {
+              "position_offset": 103,
+              "field_name": "tcp.window",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "udp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 345,
+          "records": [
+            {
+              "position_offset": 83,
+              "field_name": "tcp.checksum",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        },
+        {
+          "phv_number": 346,
+          "records": [
+            {
+              "position_offset": 101,
+              "field_name": "tcp.urgent_ptr",
+              "field_msb": 15,
+              "field_lsb": 0,
+              "field_width": 2,
+              "phv_msb": 15,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 16
+        }
+      ],
+      "stage_number": 11
+    }
+  ],
+  "tables": [
+    {
+      "direction": "ingress",
+      "handle": 16777217,
+      "name": "tbl_act",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 0,
+            "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": 0,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "result_physical_buses": [ 1 ],
+            "action_format": [
+              {
+                "action_name": "act_0",
+                "action_handle": 536870914,
+                "table_name": "tbl_act_8",
+                "next_table": 0,
+                "next_table_full": 16,
+                "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_0",
+          "handle": 536870914,
+          "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": "hasExited_0" },
+              "src": [
+                { "type": "immmediate", "name": "0" },
+                { "type": "phv", "name": "B7" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870914,
+      "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": "egress",
+      "handle": 16777218,
+      "name": "tbl_act_6",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 0,
+            "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": [ 0 ],
+            "action_format": [
+              {
+                "action_name": "act_6",
+                "action_handle": 536870915,
+                "table_name": "--END_OF_PIPELINE--",
+                "next_table": 0,
+                "next_table_full": 255,
+                "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_6",
+          "handle": 536870915,
+          "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": "packet_in.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B16" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "packet_in.ingress_port" },
+              "src": [
+                { "type": "phv", "name": "H18" },
+                { "type": "phv", "name": "H17" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870915,
+      "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": 16777219,
+      "name": "tbl_act_0",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 1,
+            "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": 0,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "result_physical_buses": [ 0 ],
+            "action_format": [
+              {
+                "action_name": "act",
+                "action_handle": 536870916,
+                "table_name": "filtering_ingress_port_vlan",
+                "next_table": 0,
+                "next_table_full": 32,
+                "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",
+          "handle": 536870916,
+          "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": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "phv", "name": "H2" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "hasExited_0" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B7" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870916,
+      "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": 16777220,
+      "name": "filtering.ingress_port_vlan",
+      "table_type": "match",
+      "size": 512,
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 2,
+            "size": 512,
+            "stage_table_type": "ternary_match",
+            "logical_table_id": 0,
+            "has_attached_gateway": true,
+            "pack_format": [
+              {
+                "table_word_width": 47,
+                "memory_word_width": 47,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 1,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_0--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--version--",
+                        "lsb_mem_word_offset": 43,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "version",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "--tcam_parity_0--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "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": 35,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 1
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [ 0 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 0
+            },
+            "default_next_table": 1,
+            "result_physical_buses": [ 0 ],
+            "ternary_indirection_stage_table": {
+              "stage_number": 2,
+              "stage_table_type": "ternary_indirection",
+              "size": 4096,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 4,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 3,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 3,
+                          "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": 20,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 99,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 9,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 119,
+                          "field_name": "--padding_23_31--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 2,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 3,
+                          "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": 20,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 67,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 9,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 87,
+                          "field_name": "--padding_23_31--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 3,
+                          "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": 20,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 35,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 9,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 55,
+                          "field_name": "--padding_23_31--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 3,
+                          "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": 20,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 3,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 9,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 23,
+                          "field_name": "--padding_23_31--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": {
+                "memory_type": "sram",
+                "memory_units_and_vpns": [ { "memory_units": [ 2 ], "vpns": [ 0 ] } ],
+                "spare_bank_memory_unit": 2
+              },
+              "action_format": [
+                {
+                  "action_name": "nop",
+                  "action_handle": 536870919,
+                  "table_name": "tbl_act_12",
+                  "next_table": 0,
+                  "next_table_full": 33,
+                  "vliw_instruction": 0,
+                  "vliw_instruction_full": 65,
+                  "immediate_fields": []
+                },
+                {
+                  "action_name": "filtering.push_internal_vlan",
+                  "action_handle": 536870917,
+                  "table_name": "tbl_act_12",
+                  "next_table": 0,
+                  "next_table_full": 33,
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 64,
+                  "immediate_fields": [
+                    {
+                      "param_name": "constant_1",
+                      "param_type": "constant",
+                      "const_value": 1,
+                      "param_shift": 0,
+                      "dest_start": 18,
+                      "dest_width": 1
+                    },
+                    {
+                      "param_name": "constant_1",
+                      "param_type": "constant",
+                      "const_value": 1,
+                      "param_shift": 0,
+                      "dest_start": 19,
+                      "dest_width": 1
+                    },
+                    {
+                      "param_name": "constant_0",
+                      "param_type": "constant",
+                      "const_value": 0,
+                      "param_shift": 0,
+                      "dest_start": 12,
+                      "dest_width": 1
+                    },
+                    {
+                      "param_name": "constant_0",
+                      "param_type": "constant",
+                      "const_value": 0,
+                      "param_shift": 0,
+                      "dest_start": 13,
+                      "dest_width": 3
+                    },
+                    {
+                      "param_name": "new_vlan_id",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 12
+                    }
+                  ]
+                },
+                {
+                  "action_name": "filtering.set_vlan",
+                  "action_handle": 536870918,
+                  "table_name": "tbl_act_12",
+                  "next_table": 0,
+                  "next_table_full": 33,
+                  "vliw_instruction": 2,
+                  "vliw_instruction_full": 66,
+                  "immediate_fields": [
+                    {
+                      "param_name": "new_vlan_id",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 12
+                    }
+                  ]
+                },
+                {
+                  "action_name": "filtering.drop",
+                  "action_handle": 536870920,
+                  "table_name": "tbl_act_12",
+                  "next_table": 0,
+                  "next_table_full": 33,
+                  "vliw_instruction": 3,
+                  "vliw_instruction_full": 67,
+                  "immediate_fields": []
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108865,
+          "name": "filtering.ingress_port_vlan_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "nop",
+          "handle": 536870919,
+          "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": "filtering.push_internal_vlan",
+          "handle": 536870917,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "new_vlan_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 12
+            }
+          ],
+          "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": "vlan_tag.ether_type" },
+              "src": [ { "type": "phv", "name": "H7" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.ether_type" },
+              "src": [ { "immediate": "33024" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B8" },
+              "src": [
+                { "type": "immediate", "name": "$data1" },
+                { "type": "phv", "name": "B8" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "H3" },
+              "src": [ { "type": "immediate", "name": "$data0" } ]
+            }
+          ]
+        },
+        {
+          "name": "filtering.set_vlan",
+          "handle": 536870918,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "new_vlan_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 12
+            }
+          ],
+          "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": "vlan_tag.vlan_id" },
+              "src": [
+                { "type": "immediate", "name": "new_vlan_id" },
+                { "type": "phv", "name": "H3" }
+              ]
+            }
+          ]
+        },
+        {
+          "name": "filtering.drop",
+          "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,
+          "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": "ig_intr_md_for_tm.drop_ctl" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "H2" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870919,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "ig_intr_md.ingress_port",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 9,
+          "bit_width_full": 9,
+          "is_valid": false,
+          "instance_name": "ig_intr_md",
+          "field_name": "ingress_port"
+        },
+        {
+          "name": "vlan_tag",
+          "position": 1,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 1,
+          "bit_width_full": 1,
+          "is_valid": true,
+          "instance_name": "vlan_tag",
+          "field_name": ""
+        },
+        {
+          "name": "vlan_tag.vlan_id",
+          "position": 2,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 12,
+          "bit_width_full": 12,
+          "is_valid": false,
+          "instance_name": "vlan_tag",
+          "field_name": "vlan_id"
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108865,
+      "name": "filtering.ingress_port_vlan_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 2,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 0,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 78 ], "vpns": [ 0 ] },
+              { "memory_units": [ 79 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 79
+          },
+          "stats_alu_index": 3
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777221,
+      "name": "tbl_act_4",
+      "table_type": "match",
+      "size": 512,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 2,
+            "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": 0,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "result_physical_buses": [ 1 ],
+            "action_format": [
+              {
+                "action_name": "act_4",
+                "action_handle": 536870921,
+                "table_name": "filtering_fwd_classifier",
+                "next_table": 0,
+                "next_table_full": 48,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 65,
+                "immediate_fields": []
+              }
+            ],
+            "hash_functions": []
+          }
+        ],
+        "match_type": "match_with_no_key",
+        "uses_dynamic_key_masks": false
+      },
+      "actions": [
+        {
+          "name": "act_4",
+          "handle": 536870921,
+          "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": []
+        }
+      ],
+      "default_action_handle": 536870921,
+      "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": true,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "indirect",
+          "handle": 67108866,
+          "name": "port_counters_control.ingress_port_counter"
+        }
+      ],
+      "stateful_table_refs": []
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108866,
+      "name": "port_counters_control.ingress_port_counter",
+      "table_type": "statistics",
+      "size": 511,
+      "stage_tables": [
+        {
+          "stage_number": 2,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 1,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 54 ], "vpns": [ 0 ] },
+              { "memory_units": [ 55 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 55
+          },
+          "stats_alu_index": 2
+        }
+      ],
+      "how_referenced": "indirect",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777222,
+      "name": "filtering.fwd_classifier",
+      "table_type": "match",
+      "size": 3072,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108867,
+          "name": "filtering.fwd_classifier_counter"
+        }
+      ],
+      "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": "ig_intr_md.ingress_port",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 9,
+          "bit_width_full": 9,
+          "is_valid": false,
+          "instance_name": "ig_intr_md",
+          "field_name": "ingress_port"
+        },
+        {
+          "name": "ethernet.dst_addr",
+          "position": 1,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 48,
+          "bit_width_full": 48,
+          "is_valid": false,
+          "instance_name": "ethernet",
+          "field_name": "dst_addr"
+        },
+        {
+          "name": "fabric_metadata.original_ether_type",
+          "position": 2,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 16,
+          "bit_width_full": 16,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "original_ether_type"
+        }
+      ],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 3,
+            "size": 3072,
+            "stage_table_type": "hash_match",
+            "logical_table_id": 0,
+            "has_attached_gateway": false,
+            "hash_functions": [
+              {
+                "hash_bits": [
+                  {
+                    "hash_bit": 0,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 0, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 1,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 1, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 2,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 2, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 3,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 3, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 4,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 4, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 5,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 5, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 6,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 6, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 7,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 7, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 8,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 8, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 9,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 10,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 0, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 11,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 1, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 12,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 2, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 13,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 3, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 14,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 4, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 15,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 5, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 16,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 6, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 17,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 7, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 18,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 8, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 19,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 20,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 0, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 21,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 1, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 22,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 2, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 23,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 3, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 24,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 4, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 25,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 5, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 26,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 27, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 6, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 11, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 27,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 21, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 23, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 28, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 31, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 40, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 7, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 12, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 1,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 28,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 18, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 20, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 25, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 26, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 42, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 8, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 9, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 10, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 13, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 15, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 29,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 19, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 22, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 24, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 29, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 30, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 41, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 43, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 44, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
+                      { "field_bit": 14, "field_name": "ethernet.dst_addr" },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.original_ether_type"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "ig_intr_md.ingress_port"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "ig_intr_md.ingress_port"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "action_format": [
+              {
+                "action_name": "filtering.set_forwarding_type",
+                "action_handle": 536870922,
+                "table_name": "forwarding_bridging",
+                "next_table": 0,
+                "next_table_full": 64,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 64,
+                "immediate_fields": [
+                  {
+                    "param_name": "fwd_type",
+                    "param_type": "parameter",
+                    "param_shift": 0,
+                    "dest_start": 3,
+                    "dest_width": 3
+                  }
+                ]
+              }
+            ],
+            "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": 6,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 65,
+                            "start_bit": 9,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 7
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 8,
+                            "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": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 16,
+                            "start_bit": 24,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "start_bit": 32,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 32,
+                            "start_bit": 40,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "fabric_metadata.original_ether_type",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "start_bit": 0,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "fabric_metadata.original_ether_type",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 48,
+                            "start_bit": 8,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ig_intr_md.ingress_port",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 56,
+                            "start_bit": 0,
+                            "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": 6,
+                            "field_name": "--padding_6_7--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 64,
+                            "field_name": "--padding_64_64--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 40,
+                            "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--",
+                            "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": 6,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 65,
+                            "start_bit": 9,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 7
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 8,
+                            "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": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 16,
+                            "start_bit": 24,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "start_bit": 32,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 32,
+                            "start_bit": 40,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "fabric_metadata.original_ether_type",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "start_bit": 0,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "fabric_metadata.original_ether_type",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 48,
+                            "start_bit": 8,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ig_intr_md.ingress_port",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 56,
+                            "start_bit": 0,
+                            "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": 6,
+                            "field_name": "--padding_6_7--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 64,
+                            "field_name": "--padding_64_64--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 40,
+                            "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--",
+                            "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": 6,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 65,
+                            "start_bit": 9,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 7
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 8,
+                            "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": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 16,
+                            "start_bit": 24,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "start_bit": 32,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ethernet.dst_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 32,
+                            "start_bit": 40,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "fabric_metadata.original_ether_type",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "start_bit": 0,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "fabric_metadata.original_ether_type",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 48,
+                            "start_bit": 8,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "ig_intr_md.ingress_port",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 56,
+                            "start_bit": 0,
+                            "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": 6,
+                            "field_name": "--padding_6_7--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 64,
+                            "field_name": "--padding_64_64--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 40,
+                            "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--",
+                            "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": "filtering.set_forwarding_type",
+          "handle": 536870922,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "p4_parameters": [
+            {
+              "name": "fwd_type",
+              "start_bit": 0,
+              "position": 0,
+              "default_value": 0,
+              "bit_width": 3
+            }
+          ],
+          "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": "fabric_metadata.fwd_type" },
+              "src": [
+                { "type": "immediate", "name": "fwd_type" },
+                { "type": "phv", "name": "H2" }
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108867,
+      "name": "filtering.fwd_classifier_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 3,
+          "size": 4096,
+          "stage_table_type": "statistics",
+          "logical_table_id": 0,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 78 ], "vpns": [ 0 ] },
+              { "memory_units": [ 79 ], "vpns": [ 1 ] },
+              { "memory_units": [ 80 ], "vpns": [ 2 ] }
+            ],
+            "spare_bank_memory_unit": 80
+          },
+          "stats_alu_index": 3
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777223,
+      "name": "forwarding.bridging",
+      "table_type": "match",
+      "size": 512,
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 4,
+            "size": 512,
+            "stage_table_type": "ternary_match",
+            "logical_table_id": 0,
+            "has_attached_gateway": true,
+            "pack_format": [
+              {
+                "table_word_width": 94,
+                "memory_word_width": 47,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 2,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_1--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_1--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ethernet.dst_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 16,
+                        "field_width": 32
+                      },
+                      {
+                        "field_name": "ethernet.dst_addr",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "--tcam_payload_0--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--version--",
+                        "lsb_mem_word_offset": 43,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "version",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "--tcam_parity_0--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "vlan_tag.vlan_id",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ethernet.dst_addr",
+                        "lsb_mem_word_offset": 9,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "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
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [ 0, 1 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 1
+            },
+            "default_next_table": 0,
+            "result_physical_buses": [ 0, 2 ],
+            "ternary_indirection_stage_table": {
+              "stage_number": 4,
+              "stage_table_type": "ternary_indirection",
+              "size": 2048,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 2,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 66,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 98,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 2,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 34,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": {
+                "memory_type": "sram",
+                "memory_units_and_vpns": [ { "memory_units": [ 2 ], "vpns": [ 0 ] } ],
+                "spare_bank_memory_unit": 2
+              },
+              "action_format": [
+                {
+                  "action_name": "NoAction",
+                  "action_handle": 536870924,
+                  "table_name": "forwarding_acl",
+                  "next_table": 0,
+                  "next_table_full": 80,
+                  "vliw_instruction": 0,
+                  "vliw_instruction_full": 65,
+                  "immediate_fields": []
+                },
+                {
+                  "action_name": "forwarding.set_next_id",
+                  "action_handle": 536870923,
+                  "table_name": "forwarding_acl",
+                  "next_table": 0,
+                  "next_table_full": 80,
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 64,
+                  "immediate_fields": [
+                    {
+                      "param_name": "next_id",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 32
+                    }
+                  ]
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108868,
+          "name": "forwarding.bridging_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870924,
+          "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": "forwarding.set_next_id",
+          "handle": 536870923,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "next_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 32
+            }
+          ],
+          "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": "fabric_metadata.next_id" },
+              "src": [ { "type": "immediate", "name": "next_id" } ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870924,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "vlan_tag.vlan_id",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 12,
+          "bit_width_full": 12,
+          "is_valid": false,
+          "instance_name": "vlan_tag",
+          "field_name": "vlan_id"
+        },
+        {
+          "name": "ethernet.dst_addr",
+          "position": 1,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 48,
+          "bit_width_full": 48,
+          "is_valid": false,
+          "instance_name": "ethernet",
+          "field_name": "dst_addr"
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108868,
+      "name": "forwarding.bridging_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 4,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 0,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 6 ], "vpns": [ 0 ] },
+              { "memory_units": [ 7 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 7
+          },
+          "stats_alu_index": 0
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777224,
+      "name": "forwarding.mpls",
+      "table_type": "match",
+      "size": 3072,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108869,
+          "name": "forwarding.mpls_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "default_action_handle": 536870926,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "mpls.label",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 20,
+          "bit_width_full": 20,
+          "is_valid": false,
+          "instance_name": "mpls",
+          "field_name": "label"
+        }
+      ],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 4,
+            "size": 3072,
+            "stage_table_type": "hash_match",
+            "logical_table_id": 1,
+            "has_attached_gateway": true,
+            "hash_functions": [
+              {
+                "hash_bits": [
+                  {
+                    "hash_bit": 0,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 4, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 1,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 5, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 2,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 6, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 3,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 7, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 4,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 8, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 5,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 9, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 6,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 0, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 7,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 1, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 8,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 2, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 9,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 3, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 10,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 4, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 11,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 5, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 12,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 6, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 13,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 7, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 14,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 8, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 15,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 9, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 16,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 0, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 17,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 1, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 18,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 2, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 19,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 3, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 20,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 4, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 21,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 5, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 22,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 6, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 23,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 7, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 24,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 8, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 25,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 9, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 26,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 17, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 0, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 27,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 13, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 1, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 28,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 15, "field_name": "mpls.label" },
+                      { "field_bit": 18, "field_name": "mpls.label" },
+                      { "field_bit": 19, "field_name": "mpls.label" },
+                      { "field_bit": 10, "field_name": "mpls.label" },
+                      { "field_bit": 11, "field_name": "mpls.label" },
+                      { "field_bit": 2, "field_name": "mpls.label" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 29,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 12, "field_name": "mpls.label" },
+                      { "field_bit": 14, "field_name": "mpls.label" },
+                      { "field_bit": 16, "field_name": "mpls.label" },
+                      { "field_bit": 3, "field_name": "mpls.label" }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "action_format": [
+              {
+                "action_name": "NoAction",
+                "action_handle": 536870926,
+                "table_name": "tbl_act_9",
+                "next_table": 0,
+                "next_table_full": 68,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 65,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "forwarding.pop_mpls_and_next",
+                "action_handle": 536870925,
+                "table_name": "tbl_act_9",
+                "next_table": 0,
+                "next_table_full": 68,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 66,
+                "immediate_fields": [
+                  {
+                    "param_name": "next_id",
+                    "param_type": "parameter",
+                    "param_shift": 0,
+                    "dest_start": 0,
+                    "dest_width": 32
+                  }
+                ]
+              }
+            ],
+            "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": 4,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "mpls.label",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 38,
+                            "start_bit": 10,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 2
+                          },
+                          {
+                            "field_name": "mpls.label",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "start_bit": 12,
+                            "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": 4,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 34,
+                            "field_name": "--padding_34_37--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 64,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 48,
+                            "field_name": "--padding_48_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": 4,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "mpls.label",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 38,
+                            "start_bit": 10,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 2
+                          },
+                          {
+                            "field_name": "mpls.label",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "start_bit": 12,
+                            "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": 4,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 34,
+                            "field_name": "--padding_34_37--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 64,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 48,
+                            "field_name": "--padding_48_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": 4,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "mpls.label",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 38,
+                            "start_bit": 10,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 2
+                          },
+                          {
+                            "field_name": "mpls.label",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "start_bit": 12,
+                            "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": 4,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 34,
+                            "field_name": "--padding_34_37--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 64,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 48,
+                            "field_name": "--padding_48_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": 536870926,
+          "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": []
+        },
+        {
+          "name": "forwarding.pop_mpls_and_next",
+          "handle": 536870925,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "p4_parameters": [
+            {
+              "name": "next_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 32
+            }
+          ],
+          "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": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "0" },
+                { "type": "phv", "name": "B7" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "fabric_metadata.next_id" },
+              "src": [ { "type": "immediate", "name": "next_id" } ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108869,
+      "name": "forwarding.mpls_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 4,
+          "size": 4096,
+          "stage_table_type": "statistics",
+          "logical_table_id": 1,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 78 ], "vpns": [ 0 ] },
+              { "memory_units": [ 79 ], "vpns": [ 1 ] },
+              { "memory_units": [ 80 ], "vpns": [ 2 ] }
+            ],
+            "spare_bank_memory_unit": 80
+          },
+          "stats_alu_index": 3
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777225,
+      "name": "tbl_act_1",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 4,
+            "size": 1,
+            "stage_table_type": "match_with_no_key",
+            "logical_table_id": 4,
+            "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": [ 0 ],
+            "action_format": [
+              {
+                "action_name": "act_1",
+                "action_handle": 536870927,
+                "table_name": "forwarding_acl",
+                "next_table": 0,
+                "next_table_full": 80,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 67,
+                "immediate_fields": []
+              }
+            ],
+            "hash_functions": []
+          }
+        ],
+        "match_type": "match_with_no_key",
+        "uses_dynamic_key_masks": false
+      },
+      "actions": [
+        {
+          "name": "act_1",
+          "handle": 536870927,
+          "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": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "2048" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "fabric_metadata.original_ether_type" },
+              "src": [ { "immediate": "2048" } ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870927,
+      "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": "forwarding.unicast_v4",
+      "table_type": "match",
+      "size": 512,
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 4,
+            "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,
+                "number_memory_units_per_table_word": 1,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_0--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--version--",
+                        "lsb_mem_word_offset": 43,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "version",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "--tcam_parity_0--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 24,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 9,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 24
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [ 5 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 5
+            },
+            "default_next_table": 0,
+            "result_physical_buses": [ 10 ],
+            "ternary_indirection_stage_table": {
+              "stage_number": 4,
+              "stage_table_type": "ternary_indirection",
+              "size": 2048,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 2,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 66,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 98,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 2,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 34,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": {
+                "memory_type": "sram",
+                "memory_units_and_vpns": [ { "memory_units": [ 14 ], "vpns": [ 0 ] } ],
+                "spare_bank_memory_unit": 14
+              },
+              "action_format": [
+                {
+                  "action_name": "NoAction",
+                  "action_handle": 536870929,
+                  "table_name": "forwarding_acl",
+                  "next_table": 0,
+                  "next_table_full": 80,
+                  "vliw_instruction": 0,
+                  "vliw_instruction_full": 65,
+                  "immediate_fields": []
+                },
+                {
+                  "action_name": "forwarding.set_next_id",
+                  "action_handle": 536870928,
+                  "table_name": "forwarding_acl",
+                  "next_table": 0,
+                  "next_table_full": 80,
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 68,
+                  "immediate_fields": [
+                    {
+                      "param_name": "next_id",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 32
+                    }
+                  ]
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108870,
+          "name": "forwarding.unicast_v4_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870929,
+          "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": "forwarding.set_next_id",
+          "handle": 536870928,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "next_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 32
+            }
+          ],
+          "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": "fabric_metadata.next_id" },
+              "src": [ { "type": "immediate", "name": "next_id" } ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870929,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "ipv4.dst_addr",
+          "position": 0,
+          "match_type": "lpm",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "ipv4",
+          "field_name": "dst_addr"
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108870,
+      "name": "forwarding.unicast_v4_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 4,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 2,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 30 ], "vpns": [ 0 ] },
+              { "memory_units": [ 31 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 31
+          },
+          "stats_alu_index": 1
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777227,
+      "name": "forwarding.multicast_v4",
+      "table_type": "match",
+      "size": 512,
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 4,
+            "size": 512,
+            "stage_table_type": "ternary_match",
+            "logical_table_id": 3,
+            "has_attached_gateway": true,
+            "pack_format": [
+              {
+                "table_word_width": 141,
+                "memory_word_width": 47,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 3,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_2--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_2--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "vlan_tag.vlan_id",
+                        "lsb_mem_word_offset": 17,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "--tcam_payload_1--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_1--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 24,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "--tcam_payload_0--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--version--",
+                        "lsb_mem_word_offset": 43,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "version",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "--tcam_parity_0--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 16
+                      },
+                      {
+                        "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": 8,
+                        "field_width": 4
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 25,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [ 2, 3, 4 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 4
+            },
+            "default_next_table": 0,
+            "result_physical_buses": [ 4, 6, 8 ],
+            "ternary_indirection_stage_table": {
+              "stage_number": 4,
+              "stage_table_type": "ternary_indirection",
+              "size": 2048,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 2,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 66,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 98,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 2,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 34,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": {
+                "memory_type": "sram",
+                "memory_units_and_vpns": [ { "memory_units": [ 26 ], "vpns": [ 0 ] } ],
+                "spare_bank_memory_unit": 26
+              },
+              "action_format": [
+                {
+                  "action_name": "NoAction",
+                  "action_handle": 536870931,
+                  "table_name": "forwarding_acl",
+                  "next_table": 0,
+                  "next_table_full": 80,
+                  "vliw_instruction": 0,
+                  "vliw_instruction_full": 65,
+                  "immediate_fields": []
+                },
+                {
+                  "action_name": "forwarding.set_next_id",
+                  "action_handle": 536870930,
+                  "table_name": "forwarding_acl",
+                  "next_table": 0,
+                  "next_table_full": 80,
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 70,
+                  "immediate_fields": [
+                    {
+                      "param_name": "next_id",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 32
+                    }
+                  ]
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108871,
+          "name": "forwarding.multicast_v4_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "NoAction",
+          "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": "forwarding.set_next_id",
+          "handle": 536870930,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "next_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 32
+            }
+          ],
+          "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": "fabric_metadata.next_id" },
+              "src": [ { "type": "immediate", "name": "next_id" } ]
+            }
+          ]
+        }
+      ],
+      "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": [
+        {
+          "name": "vlan_tag.vlan_id",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 12,
+          "bit_width_full": 12,
+          "is_valid": false,
+          "instance_name": "vlan_tag",
+          "field_name": "vlan_id"
+        },
+        {
+          "name": "ipv4.dst_addr",
+          "position": 1,
+          "match_type": "lpm",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "ipv4",
+          "field_name": "dst_addr"
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108871,
+      "name": "forwarding.multicast_v4_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 4,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 3,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 54 ], "vpns": [ 0 ] },
+              { "memory_units": [ 55 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 55
+          },
+          "stats_alu_index": 2
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777228,
+      "name": "forwarding.acl",
+      "table_type": "match",
+      "size": 256,
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 5,
+            "size": 512,
+            "stage_table_type": "ternary_match",
+            "logical_table_id": 0,
+            "has_attached_gateway": false,
+            "pack_format": [
+              {
+                "table_word_width": 282,
+                "memory_word_width": 47,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 6,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_5--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 5,
+                        "msb_mem_word_idx": 5,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_5--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 5,
+                        "msb_mem_word_idx": 5,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ethernet.dst_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 5,
+                        "msb_mem_word_idx": 5,
+                        "source": "spec",
+                        "start_bit": 16,
+                        "field_width": 32
+                      },
+                      {
+                        "field_name": "ethernet.src_addr",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 5,
+                        "msb_mem_word_idx": 5,
+                        "source": "spec",
+                        "start_bit": 16,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ig_intr_md.ingress_port",
+                        "lsb_mem_word_offset": 41,
+                        "lsb_mem_word_idx": 5,
+                        "msb_mem_word_idx": 5,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_payload_4--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--version--",
+                        "lsb_mem_word_offset": 43,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "version",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "--tcam_parity_4--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ethernet.src_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "spec",
+                        "start_bit": 32,
+                        "field_width": 16
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 17,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ethernet.src_addr",
+                        "lsb_mem_word_offset": 25,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "spec",
+                        "start_bit": 24,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 4,
+                        "msb_mem_word_idx": 4,
+                        "source": "spec",
+                        "start_bit": 16,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "--tcam_payload_3--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_3--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "spec",
+                        "start_bit": 24,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ipv4.src_addr",
+                        "lsb_mem_word_offset": 9,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ipv4.dst_addr",
+                        "lsb_mem_word_offset": 17,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ipv4.src_addr",
+                        "lsb_mem_word_offset": 25,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "spec",
+                        "start_bit": 16,
+                        "field_width": 16
+                      },
+                      {
+                        "field_name": "fabric_metadata.l4_dst_port",
+                        "lsb_mem_word_offset": 41,
+                        "lsb_mem_word_idx": 3,
+                        "msb_mem_word_idx": 3,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 4
+                      },
+                      {
+                        "field_name": "fabric_metadata.l4_dst_port",
+                        "lsb_mem_word_offset": 41,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "spec",
+                        "start_bit": 4,
+                        "field_width": 4
+                      },
+                      {
+                        "field_name": "--tcam_payload_2--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_2--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "ipv4.src_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ethernet.dst_addr",
+                        "lsb_mem_word_offset": 9,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 16
+                      },
+                      {
+                        "field_name": "ethernet.src_addr",
+                        "lsb_mem_word_offset": 25,
+                        "lsb_mem_word_idx": 2,
+                        "msb_mem_word_idx": 2,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 16
+                      },
+                      {
+                        "field_name": "--tcam_payload_1--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_1--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      },
+                      {
+                        "field_name": "fabric_metadata.l4_src_port",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "fabric_metadata.l4_dst_port",
+                        "lsb_mem_word_offset": 9,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "fabric_metadata.original_ether_type",
+                        "lsb_mem_word_offset": 17,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "fabric_metadata.l4_src_port",
+                        "lsb_mem_word_offset": 25,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "ig_intr_md.ingress_port",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "icmp.icmp_type",
+                        "lsb_mem_word_offset": 41,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 4
+                      },
+                      {
+                        "field_name": "icmp.icmp_type",
+                        "lsb_mem_word_offset": 41,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 4,
+                        "field_width": 4
+                      },
+                      {
+                        "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
+                      },
+                      {
+                        "field_name": "vlan_tag.vlan_id",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "fabric_metadata.original_ether_type",
+                        "lsb_mem_word_offset": 9,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "fabric_metadata.ip_proto",
+                        "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": "icmp.icmp_code",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [ 0, 1, 2, 3, 4, 5 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 5
+            },
+            "default_next_table": 0,
+            "result_physical_buses": [ 0, 2, 4, 6, 8, 10 ],
+            "ternary_indirection_stage_table": {
+              "stage_number": 5,
+              "stage_table_type": "ternary_indirection",
+              "size": 2048,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 2,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 66,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 98,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 2,
+                          "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": 32,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 2,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 30,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 34,
+                          "field_name": "--padding_34_63--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": {
+                "memory_type": "sram",
+                "memory_units_and_vpns": [ { "memory_units": [ 2 ], "vpns": [ 0 ] } ],
+                "spare_bank_memory_unit": 2
+              },
+              "action_format": [
+                {
+                  "action_name": "nop",
+                  "action_handle": 536870935,
+                  "table_name": "next_simple",
+                  "next_table": 0,
+                  "next_table_full": 96,
+                  "vliw_instruction": 0,
+                  "vliw_instruction_full": 67,
+                  "immediate_fields": []
+                },
+                {
+                  "action_name": "forwarding.set_next_id",
+                  "action_handle": 536870932,
+                  "table_name": "next_simple",
+                  "next_table": 0,
+                  "next_table_full": 96,
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 64,
+                  "immediate_fields": [
+                    {
+                      "param_name": "next_id",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 32
+                    }
+                  ]
+                },
+                {
+                  "action_name": "forwarding.duplicate_to_controller",
+                  "action_handle": 536870933,
+                  "table_name": "next_simple",
+                  "next_table": 0,
+                  "next_table_full": 96,
+                  "vliw_instruction": 2,
+                  "vliw_instruction_full": 65,
+                  "immediate_fields": [
+                    {
+                      "param_name": "constant_192",
+                      "param_type": "constant",
+                      "const_value": 192,
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 9
+                    }
+                  ]
+                },
+                {
+                  "action_name": "forwarding.drop",
+                  "action_handle": 536870934,
+                  "table_name": "next_simple",
+                  "next_table": 0,
+                  "next_table_full": 96,
+                  "vliw_instruction": 3,
+                  "vliw_instruction_full": 66,
+                  "immediate_fields": []
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108872,
+          "name": "forwarding.acl_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "nop",
+          "handle": 536870935,
+          "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": "forwarding.set_next_id",
+          "handle": 536870932,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "next_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 32
+            }
+          ],
+          "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": "fabric_metadata.next_id" },
+              "src": [ { "type": "immediate", "name": "next_id" } ]
+            }
+          ]
+        },
+        {
+          "name": "forwarding.duplicate_to_controller",
+          "handle": 536870933,
+          "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": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "immediate", "name": "$constant0" },
+                { "type": "phv", "name": "H1" }
+              ]
+            }
+          ]
+        },
+        {
+          "name": "forwarding.drop",
+          "handle": 536870934,
+          "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": "ig_intr_md_for_tm.drop_ctl" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "H2" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870935,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "ig_intr_md.ingress_port",
+          "position": 0,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 9,
+          "bit_width_full": 9,
+          "is_valid": false,
+          "instance_name": "ig_intr_md",
+          "field_name": "ingress_port"
+        },
+        {
+          "name": "fabric_metadata.ip_proto",
+          "position": 1,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 8,
+          "bit_width_full": 8,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "ip_proto"
+        },
+        {
+          "name": "fabric_metadata.l4_src_port",
+          "position": 2,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 16,
+          "bit_width_full": 16,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "l4_src_port"
+        },
+        {
+          "name": "fabric_metadata.l4_dst_port",
+          "position": 3,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 16,
+          "bit_width_full": 16,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "l4_dst_port"
+        },
+        {
+          "name": "fabric_metadata.original_ether_type",
+          "position": 4,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 16,
+          "bit_width_full": 16,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "original_ether_type"
+        },
+        {
+          "name": "ethernet.dst_addr",
+          "position": 5,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 48,
+          "bit_width_full": 48,
+          "is_valid": false,
+          "instance_name": "ethernet",
+          "field_name": "dst_addr"
+        },
+        {
+          "name": "ethernet.src_addr",
+          "position": 6,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 48,
+          "bit_width_full": 48,
+          "is_valid": false,
+          "instance_name": "ethernet",
+          "field_name": "src_addr"
+        },
+        {
+          "name": "vlan_tag.vlan_id",
+          "position": 7,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 12,
+          "bit_width_full": 12,
+          "is_valid": false,
+          "instance_name": "vlan_tag",
+          "field_name": "vlan_id"
+        },
+        {
+          "name": "ipv4.src_addr",
+          "position": 8,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "ipv4",
+          "field_name": "src_addr"
+        },
+        {
+          "name": "ipv4.dst_addr",
+          "position": 9,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "ipv4",
+          "field_name": "dst_addr"
+        },
+        {
+          "name": "icmp.icmp_type",
+          "position": 10,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 8,
+          "bit_width_full": 8,
+          "is_valid": false,
+          "instance_name": "icmp",
+          "field_name": "icmp_type"
+        },
+        {
+          "name": "icmp.icmp_code",
+          "position": 11,
+          "match_type": "ternary",
+          "start_bit": 0,
+          "bit_width": 8,
+          "bit_width_full": 8,
+          "is_valid": false,
+          "instance_name": "icmp",
+          "field_name": "icmp_code"
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108872,
+      "name": "forwarding.acl_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 5,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 0,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 78 ], "vpns": [ 0 ] },
+              { "memory_units": [ 79 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 79
+          },
+          "stats_alu_index": 3
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777229,
+      "name": "next.simple",
+      "table_type": "match",
+      "size": 3072,
+      "action_data_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 33554433,
+          "name": "next_simple$action"
+        }
+      ],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108873,
+          "name": "next.simple_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "default_action_handle": 536870940,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "fabric_metadata.next_id",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "next_id"
+        }
+      ],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 6,
+            "size": 3072,
+            "stage_table_type": "hash_match",
+            "logical_table_id": 0,
+            "has_attached_gateway": false,
+            "hash_functions": [
+              {
+                "hash_bits": [
+                  {
+                    "hash_bit": 0,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 16,
+                        "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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 1,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 22,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 2,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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"
+                      },
+                      {
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 3,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 4,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "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": 20,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 21,
+                        "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": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 5,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "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": 23,
+                        "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": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 6,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 7,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 8,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 9,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 19,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 20,
+                        "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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 10,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 20,
+                        "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": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 11,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 12,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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": 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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 13,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 14,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 16,
+                        "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": 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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 15,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 16,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "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"
+                      },
+                      {
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 17,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 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": 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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 18,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 19,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "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": 22,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 20,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 19,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 21,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 1,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 22,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "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": 24,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 23,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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": 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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 24,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "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": 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": 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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 25,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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"
+                      },
+                      {
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 26,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "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": 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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 27,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "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": 22,
+                        "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"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 28,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 17,
+                        "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": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 29,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 21,
+                        "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"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "action_format": [
+              {
+                "action_name": "NoAction",
+                "action_handle": 536870940,
+                "table_name": "next_hashed",
+                "next_table": 0,
+                "next_table_full": 114,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 65,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.output",
+                "action_handle": 536870936,
+                "table_name": "next_hashed",
+                "next_table": 1,
+                "next_table_full": 114,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 64,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.set_vlan_output",
+                "action_handle": 536870937,
+                "table_name": "next_hashed",
+                "next_table": 2,
+                "next_table_full": 114,
+                "vliw_instruction": 2,
+                "vliw_instruction_full": 66,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.l3_routing",
+                "action_handle": 536870938,
+                "table_name": "next_hashed",
+                "next_table": 3,
+                "next_table_full": 114,
+                "vliw_instruction": 3,
+                "vliw_instruction_full": 68,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.mpls_routing_v4",
+                "action_handle": 536870939,
+                "table_name": "next_hashed",
+                "next_table": 4,
+                "next_table_full": 114,
+                "vliw_instruction": 4,
+                "vliw_instruction_full": 70,
+                "immediate_fields": [
+                  {
+                    "param_name": "constant_0",
+                    "param_type": "constant",
+                    "const_value": 0,
+                    "param_shift": 0,
+                    "dest_start": 1,
+                    "dest_width": 3
+                  },
+                  {
+                    "param_name": "constant_1",
+                    "param_type": "constant",
+                    "const_value": 1,
+                    "param_shift": 0,
+                    "dest_start": 0,
+                    "dest_width": 1
+                  },
+                  {
+                    "param_name": "label",
+                    "param_type": "parameter",
+                    "param_shift": 0,
+                    "dest_start": 4,
+                    "dest_width": 4
+                  }
+                ]
+              }
+            ],
+            "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": 6,
+                "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": 3,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 8,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 3,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 12,
+                            "field_name": "version",
+                            "match_mode": "s1q0"
+                          },
+                          {
+                            "field_name": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 34,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 16,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 11,
+                            "field_name": "--padding_11_11--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 32,
+                            "field_name": "--padding_32_33--",
+                            "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": 40,
+                            "field_name": "--padding_40_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": 6,
+                "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": 3,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 8,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 3,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 12,
+                            "field_name": "version",
+                            "match_mode": "s1q0"
+                          },
+                          {
+                            "field_name": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 34,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 16,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 11,
+                            "field_name": "--padding_11_11--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 32,
+                            "field_name": "--padding_32_33--",
+                            "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": 40,
+                            "field_name": "--padding_40_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": 6,
+                "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": 3,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 8,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 3,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 12,
+                            "field_name": "version",
+                            "match_mode": "s1q0"
+                          },
+                          {
+                            "field_name": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 34,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 16,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 11,
+                            "field_name": "--padding_11_11--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": 32,
+                            "field_name": "--padding_32_33--",
+                            "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": 40,
+                            "field_name": "--padding_40_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": 536870940,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "next.output",
+          "handle": 536870936,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            }
+          ]
+        },
+        {
+          "name": "next.set_vlan_output",
+          "handle": 536870937,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "new_vlan_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 12
+            },
+            {
+              "name": "port_num",
+              "start_bit": 12,
+              "position": 1,
+              "bit_width": 9
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.vlan_id" },
+              "src": [
+                { "type": "action_param", "name": "new_vlan_id" },
+                { "type": "phv", "name": "H3" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "fabric_metadata.pop_vlan_at_egress" },
+              "src": [
+                { "type": "immmediate", "name": "0" },
+                { "type": "phv", "name": "B8" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            }
+          ]
+        },
+        {
+          "name": "next.l3_routing",
+          "handle": 536870938,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 }
+          ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            }
+          ]
+        },
+        {
+          "name": "next.mpls_routing_v4",
+          "handle": 536870939,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 },
+            {
+              "name": "label",
+              "start_bit": 105,
+              "position": 3,
+              "bit_width": 20
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B7" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "34887" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.label.4-19" },
+              "src": [ { "type": "action_param", "name": "label.4-19" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B2" },
+              "src": [ { "type": "immediate", "name": "$data0" } ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108873,
+      "name": "next.simple_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 6,
+          "size": 4096,
+          "stage_table_type": "statistics",
+          "logical_table_id": 0,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 78 ], "vpns": [ 0 ] },
+              { "memory_units": [ 79 ], "vpns": [ 1 ] },
+              { "memory_units": [ 80 ], "vpns": [ 2 ] }
+            ],
+            "spare_bank_memory_unit": 80
+          },
+          "stats_alu_index": 3
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 33554433,
+      "name": "next_simple$action",
+      "table_type": "action",
+      "size": 3072,
+      "stage_tables": [
+        {
+          "stage_number": 6,
+          "size": 3072,
+          "stage_table_type": "action_data",
+          "logical_table_id": 0,
+          "pack_format": [
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 128,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_127--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870940
+            },
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 9,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 48,
+                      "field_name": "port_num"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 48,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_47--"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 71,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 57,
+                      "field_name": "--padding_57_127--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870936
+            },
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 9,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 32,
+                      "field_name": "port_num"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 12,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 48,
+                      "field_name": "new_vlan_id"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_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": 68,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 60,
+                      "field_name": "--padding_60_127--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870937
+            },
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 9,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 16,
+                      "field_name": "port_num"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 32,
+                      "field_name": "dmac"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 48,
+                      "field_name": "smac"
+                    },
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "dmac"
+                    },
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 96,
+                      "field_name": "smac"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_15--"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 7,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 25,
+                      "field_name": "--padding_25_31--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870938
+            },
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 9,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 0,
+                      "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": 16,
+                      "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": 32,
+                      "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": 48,
+                      "field_name": "smac"
+                    },
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "dmac"
+                    },
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 96,
+                      "field_name": "smac"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 7,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 9,
+                      "field_name": "--padding_9_15--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870939
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 90 ], "vpns": [ 0 ] },
+              { "memory_units": [ 91 ], "vpns": [ 1 ] },
+              { "memory_units": [ 92 ], "vpns": [ 2 ] }
+            ],
+            "spare_bank_memory_unit": 92
+          }
+        }
+      ],
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870940,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "next.output",
+          "handle": 536870936,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            }
+          ]
+        },
+        {
+          "name": "next.set_vlan_output",
+          "handle": 536870937,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "new_vlan_id",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 12
+            },
+            {
+              "name": "port_num",
+              "start_bit": 12,
+              "position": 1,
+              "bit_width": 9
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.vlan_id" },
+              "src": [
+                { "type": "action_param", "name": "new_vlan_id" },
+                { "type": "phv", "name": "H3" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "fabric_metadata.pop_vlan_at_egress" },
+              "src": [
+                { "type": "immmediate", "name": "0" },
+                { "type": "phv", "name": "B8" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            }
+          ]
+        },
+        {
+          "name": "next.l3_routing",
+          "handle": 536870938,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 }
+          ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            }
+          ]
+        },
+        {
+          "name": "next.mpls_routing_v4",
+          "handle": 536870939,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 },
+            {
+              "name": "label",
+              "start_bit": 105,
+              "position": 3,
+              "bit_width": 20
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B7" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "34887" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.label.4-19" },
+              "src": [ { "type": "action_param", "name": "label.4-19" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B2" },
+              "src": [ { "type": "immediate", "name": "$data0" } ]
+            }
+          ]
+        }
+      ],
+      "how_referenced": "direct"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777230,
+      "name": "tbl_act_2",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 7,
+            "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": [ 0 ],
+            "action_format": [
+              {
+                "action_name": "act_2",
+                "action_handle": 536870941,
+                "table_name": "next_hashed",
+                "next_table": 0,
+                "next_table_full": 114,
+                "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_2",
+          "handle": 536870941,
+          "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": "DirectAluPrimitive",
+              "operation": "add",
+              "dest": { "type": "phv", "name": "ipv4.ttl" },
+              "src": [
+                { "type": "immmediate", "name": "255" },
+                { "type": "phv", "name": "B4" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870941,
+      "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": 16777231,
+      "name": "next.hashed",
+      "table_type": "match",
+      "size": 3072,
+      "action_data_table_refs": [
+        {
+          "how_referenced": "indirect",
+          "handle": 33554434,
+          "name": "next.ecmp_selector"
+        }
+      ],
+      "selection_table_refs": [
+        {
+          "how_referenced": "indirect",
+          "handle": 50331649,
+          "name": "next.ecmp_selector"
+        }
+      ],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108874,
+          "name": "next.hashed_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "default_selector_mask": 0,
+      "default_selector_value": 0,
+      "default_action_handle": 536870945,
+      "action_profile": "next.ecmp_selector",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "fabric_metadata.next_id",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "next_id"
+        }
+      ],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 7,
+            "size": 3072,
+            "stage_table_type": "hash_match",
+            "logical_table_id": 2,
+            "has_attached_gateway": false,
+            "hash_functions": [
+              {
+                "hash_bits": [
+                  {
+                    "hash_bit": 0,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "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": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 1,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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_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": 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": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 2,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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_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": 2,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 3,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 17,
+                        "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": 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": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 4,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 5,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 22,
+                        "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": 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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 6,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "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": 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": 6,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 7,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "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": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 8,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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"
+                      },
+                      {
+                        "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": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 9,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 10,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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_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": 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": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 11,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 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": 1,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 12,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 25,
+                        "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": 2,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 13,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "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": 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"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 14,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 20,
+                        "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"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 15,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 16,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 18,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 19,
+                        "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": 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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 17,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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": 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": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 18,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 18,
+                        "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": 24,
+                        "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": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 19,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 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": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 20,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 19,
+                        "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"
+                      },
+                      {
+                        "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": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 21,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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"
+                      },
+                      {
+                        "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": 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": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 22,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 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"
+                      },
+                      {
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 2,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 23,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 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"
+                      },
+                      {
+                        "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": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 24,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 25,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 22,
+                        "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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 26,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 19,
+                        "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": 6,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 27,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 22,
+                        "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": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 28,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 18,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 19,
+                        "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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 29,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 23,
+                        "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": 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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "action_format": [
+              {
+                "action_name": "NoAction",
+                "action_handle": 536870945,
+                "table_name": "tbl_act_13",
+                "next_table": 0,
+                "next_table_full": 128,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 67,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.l3_routing",
+                "action_handle": 536870942,
+                "table_name": "tbl_act_13",
+                "next_table": 0,
+                "next_table_full": 128,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 65,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.mpls_routing_v4",
+                "action_handle": 536870943,
+                "table_name": "tbl_act_13",
+                "next_table": 0,
+                "next_table_full": 128,
+                "vliw_instruction": 2,
+                "vliw_instruction_full": 66,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.mpls_routing_v6",
+                "action_handle": 536870944,
+                "table_name": "tbl_act_13",
+                "next_table": 0,
+                "next_table_full": 128,
+                "vliw_instruction": 3,
+                "vliw_instruction_full": 68,
+                "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": 7,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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"
+                          },
+                          {
+                            "start_bit": 7,
+                            "enable_pfe": true,
+                            "field_width": 10,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "sel_ptr",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "meter_addr",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 5,
+                            "enable_pfe": false,
+                            "field_width": 11,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "adt_ptr",
+                            "lsb_mem_word_offset": 13,
+                            "field_name": "action_addr",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "field_name": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 42,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 32,
+                            "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": 40,
+                            "field_name": "--padding_40_41--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 64,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 48,
+                            "field_name": "--padding_48_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": 7,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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"
+                          },
+                          {
+                            "start_bit": 7,
+                            "enable_pfe": true,
+                            "field_width": 10,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "sel_ptr",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "meter_addr",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 5,
+                            "enable_pfe": false,
+                            "field_width": 11,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "adt_ptr",
+                            "lsb_mem_word_offset": 13,
+                            "field_name": "action_addr",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "field_name": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 42,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 32,
+                            "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": 40,
+                            "field_name": "--padding_40_41--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 64,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 48,
+                            "field_name": "--padding_48_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": 7,
+                "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": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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"
+                          },
+                          {
+                            "start_bit": 7,
+                            "enable_pfe": true,
+                            "field_width": 10,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "sel_ptr",
+                            "lsb_mem_word_offset": 2,
+                            "field_name": "meter_addr",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 5,
+                            "enable_pfe": false,
+                            "field_width": 11,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "adt_ptr",
+                            "lsb_mem_word_offset": 13,
+                            "field_name": "action_addr",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "field_name": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 42,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 24,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 32,
+                            "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": 40,
+                            "field_name": "--padding_40_41--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 64,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 48,
+                            "field_name": "--padding_48_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": 536870945,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "next.l3_routing",
+          "handle": 536870942,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 }
+          ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            }
+          ]
+        },
+        {
+          "name": "next.mpls_routing_v4",
+          "handle": 536870943,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 },
+            {
+              "name": "label",
+              "start_bit": 105,
+              "position": 3,
+              "bit_width": 20
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B7" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "34887" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.label.4-19" },
+              "src": [ { "type": "action_param", "name": "label.4-19" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B2" },
+              "src": [ { "type": "action_param", "name": "$data0" } ]
+            }
+          ]
+        },
+        {
+          "name": "next.mpls_routing_v6",
+          "handle": 536870944,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 },
+            {
+              "name": "label",
+              "start_bit": 105,
+              "position": 3,
+              "bit_width": 20
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B7" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "34887" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.label.4-19" },
+              "src": [ { "type": "action_param", "name": "label.4-19" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B2" },
+              "src": [ { "type": "action_param", "name": "$data0" } ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 50331649,
+      "name": "next.ecmp_selector",
+      "table_type": "selection",
+      "size": 1024,
+      "selection_type": "fair",
+      "how_referenced": "indirect",
+      "max_port_pool_size": 120,
+      "bound_to_action_data_table_handle": 33554434,
+      "stage_tables": [
+        {
+          "stage_number": 7,
+          "size": 1024,
+          "stage_table_type": "selection",
+          "logical_table_id": 2,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [ { "memory_units": [ 90 ], "vpns": [ 0 ] } ],
+            "spare_bank_memory_unit": 91
+          },
+          "meter_alu_index": 3
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 33554434,
+      "name": "next.ecmp_selector",
+      "table_type": "action",
+      "size": 64,
+      "stage_tables": [
+        {
+          "stage_number": 7,
+          "size": 262144,
+          "stage_table_type": "action_data",
+          "logical_table_id": 2,
+          "pack_format": [
+            {
+              "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": 256,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 1,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870945
+            },
+            {
+              "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": 9,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 48,
+                      "field_name": "port_num"
+                    },
+                    {
+                      "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": 48,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_47--"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 7,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 57,
+                      "field_name": "--padding_57_63--"
+                    },
+                    {
+                      "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": 536870942
+            },
+            {
+              "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": 536870943
+            },
+            {
+              "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": 536870944
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [ { "memory_units": [ 89, 92 ], "vpns": [ 0 ] } ],
+            "spare_bank_memory_unit": [ 92, 89 ]
+          }
+        }
+      ],
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870945,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "next.l3_routing",
+          "handle": 536870942,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 }
+          ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            }
+          ]
+        },
+        {
+          "name": "next.mpls_routing_v4",
+          "handle": 536870943,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 },
+            {
+              "name": "label",
+              "start_bit": 105,
+              "position": 3,
+              "bit_width": 20
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B7" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "34887" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.label.4-19" },
+              "src": [ { "type": "action_param", "name": "label.4-19" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B2" },
+              "src": [ { "type": "action_param", "name": "$data0" } ]
+            }
+          ]
+        },
+        {
+          "name": "next.mpls_routing_v6",
+          "handle": 536870944,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            {
+              "name": "port_num",
+              "start_bit": 0,
+              "position": 0,
+              "bit_width": 9
+            },
+            { "name": "smac", "start_bit": 9, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 57, "position": 2, "bit_width": 48 },
+            {
+              "name": "label",
+              "start_bit": 105,
+              "position": 3,
+              "bit_width": 20
+            }
+          ],
+          "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,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.ucast_egress_port" },
+              "src": [
+                { "type": "action_param", "name": "port_num" },
+                { "type": "phv", "name": "H1" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B7" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
+              "src": [ { "immediate": "34887" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.ttl" },
+              "src": [ { "immediate": "64" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "mpls.label.4-19" },
+              "src": [ { "type": "action_param", "name": "label.4-19" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "dmac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "action_param", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.dst_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "dmac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B2" },
+              "src": [ { "type": "action_param", "name": "$data0" } ]
+            }
+          ]
+        }
+      ],
+      "how_referenced": "indirect"
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108874,
+      "name": "next.hashed_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 7,
+          "size": 4096,
+          "stage_table_type": "statistics",
+          "logical_table_id": 2,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 78 ], "vpns": [ 0 ] },
+              { "memory_units": [ 79 ], "vpns": [ 1 ] },
+              { "memory_units": [ 80 ], "vpns": [ 2 ] }
+            ],
+            "spare_bank_memory_unit": 80
+          },
+          "stats_alu_index": 3
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777232,
+      "name": "tbl_act_5",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 8,
+            "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": 0,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "result_physical_buses": [ 1 ],
+            "action_format": [
+              {
+                "action_name": "act_5",
+                "action_handle": 536870946,
+                "table_name": "tbl_act_11",
+                "next_table": 0,
+                "next_table_full": 129,
+                "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_5",
+          "handle": 536870946,
+          "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": "ethernet.ether_type" },
+              "src": [ { "type": "phv", "name": "H8" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "0" },
+                { "type": "phv", "name": "B8" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870946,
+      "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": 16777233,
+      "name": "tbl_act_3",
+      "table_type": "match",
+      "size": 512,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 8,
+            "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": 0,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "result_physical_buses": [ 0 ],
+            "action_format": [
+              {
+                "action_name": "act_3",
+                "action_handle": 536870947,
+                "table_name": "next_broadcast",
+                "next_table": 0,
+                "next_table_full": 130,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 65,
+                "immediate_fields": []
+              }
+            ],
+            "hash_functions": []
+          }
+        ],
+        "match_type": "match_with_no_key",
+        "uses_dynamic_key_masks": false
+      },
+      "actions": [
+        {
+          "name": "act_3",
+          "handle": 536870947,
+          "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": []
+        }
+      ],
+      "default_action_handle": 536870947,
+      "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": true,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "indirect",
+          "handle": 67108875,
+          "name": "port_counters_control.egress_port_counter"
+        }
+      ],
+      "stateful_table_refs": []
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108875,
+      "name": "port_counters_control.egress_port_counter",
+      "table_type": "statistics",
+      "size": 511,
+      "stage_tables": [
+        {
+          "stage_number": 8,
+          "size": 2048,
+          "stage_table_type": "statistics",
+          "logical_table_id": 1,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 54 ], "vpns": [ 0 ] },
+              { "memory_units": [ 55 ], "vpns": [ 1 ] }
+            ],
+            "spare_bank_memory_unit": 55
+          },
+          "stats_alu_index": 2
+        }
+      ],
+      "how_referenced": "indirect",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777234,
+      "name": "next.broadcast",
+      "table_type": "match",
+      "size": 3072,
+      "action_data_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 33554435,
+          "name": "next_broadcast$action"
+        }
+      ],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [
+        {
+          "how_referenced": "direct",
+          "handle": 67108876,
+          "name": "next.broadcast_counter"
+        }
+      ],
+      "stateful_table_refs": [],
+      "default_action_handle": 536870949,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "fabric_metadata.next_id",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "fabric_metadata",
+          "field_name": "next_id"
+        }
+      ],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 8,
+            "size": 3072,
+            "stage_table_type": "hash_match",
+            "logical_table_id": 2,
+            "has_attached_gateway": false,
+            "hash_functions": [
+              {
+                "hash_bits": [
+                  {
+                    "hash_bit": 0,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 20,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "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": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 1,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 17,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "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": 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": 1,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 2,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 17,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "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": 2,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 3,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 17,
+                        "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": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 4,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 19,
+                        "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": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 5,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 6,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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"
+                      },
+                      {
+                        "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": 6,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 7,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 8,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 17,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "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": 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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 9,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "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": 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": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 10,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "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": 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": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 11,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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": 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": 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": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 12,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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": 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": 2,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 13,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 17,
+                        "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": 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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 14,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 21,
+                        "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": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 15,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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_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": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 16,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 22,
+                        "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": 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": 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": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 17,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 23,
+                        "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": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 18,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 17,
+                        "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": 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": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 19,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 17,
+                        "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": 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": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 20,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 19,
+                        "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": 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": 0,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 21,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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"
+                      },
+                      {
+                        "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": 1,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 22,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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": 2,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 23,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 3,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 24,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 23,
+                        "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": 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": 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"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 25,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 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": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 5,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 26,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "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": 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": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 6,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 27,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 18,
+                        "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": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 7,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 28,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 21,
+                        "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": 8,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 10,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 11,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 13,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 14,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 29,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "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": 20,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "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": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 9,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 12,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 15,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "action_format": [
+              {
+                "action_name": "NoAction",
+                "action_handle": 536870949,
+                "table_name": "--END_OF_PIPELINE--",
+                "next_table": 0,
+                "next_table_full": 255,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 65,
+                "immediate_fields": []
+              },
+              {
+                "action_name": "next.set_mcast_group",
+                "action_handle": 536870948,
+                "table_name": "--END_OF_PIPELINE--",
+                "next_table": 0,
+                "next_table_full": 255,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 66,
+                "immediate_fields": [
+                  {
+                    "param_name": "gid",
+                    "param_type": "parameter",
+                    "param_shift": 0,
+                    "dest_start": 16,
+                    "dest_width": 16
+                  },
+                  {
+                    "param_name": "smac",
+                    "param_type": "parameter",
+                    "param_shift": 0,
+                    "dest_start": 0,
+                    "dest_width": 16
+                  }
+                ]
+              }
+            ],
+            "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": 8,
+                "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 1,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 34,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 48,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 33,
+                            "field_name": "--padding_33_33--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 56,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 56,
+                            "field_name": "--padding_56_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": 8,
+                "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 1,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 34,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 48,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 33,
+                            "field_name": "--padding_33_33--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 56,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 56,
+                            "field_name": "--padding_56_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": 8,
+                "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "instr",
+                            "lsb_mem_word_offset": 0,
+                            "field_name": "action",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 32,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "immediate",
+                            "lsb_mem_word_offset": 1,
+                            "field_name": "immediate",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 34,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 40,
+                            "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": "fabric_metadata.next_id",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 48,
+                            "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": 1,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 33,
+                            "field_name": "--padding_33_33--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 56,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 56,
+                            "field_name": "--padding_56_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": 536870949,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "next.set_mcast_group",
+          "handle": 536870948,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            { "name": "gid", "start_bit": 0, "position": 0, "bit_width": 16 },
+            { "name": "smac", "start_bit": 16, "position": 1, "bit_width": 48 }
+          ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.mcast_grp_a" },
+              "src": [ { "type": "immediate", "name": "gid" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "immediate", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 67108876,
+      "name": "next.broadcast_counter",
+      "table_type": "statistics",
+      "size": 0,
+      "stage_tables": [
+        {
+          "stage_number": 8,
+          "size": 4096,
+          "stage_table_type": "statistics",
+          "logical_table_id": 2,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 2,
+              "number_memory_units_per_table_word": 1
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [
+              { "memory_units": [ 78 ], "vpns": [ 0 ] },
+              { "memory_units": [ 79 ], "vpns": [ 1 ] },
+              { "memory_units": [ 80 ], "vpns": [ 2 ] }
+            ],
+            "spare_bank_memory_unit": 80
+          },
+          "stats_alu_index": 3
+        }
+      ],
+      "how_referenced": "direct",
+      "enable_pfe": false,
+      "pfe_bit_position": 0,
+      "byte_counter_resolution": 36,
+      "packet_counter_resolution": 28,
+      "statistics_type": "packets_and_bytes"
+    },
+    {
+      "direction": "ingress",
+      "handle": 33554435,
+      "name": "next_broadcast$action",
+      "table_type": "action",
+      "size": 4096,
+      "stage_tables": [
+        {
+          "stage_number": 8,
+          "size": 4096,
+          "stage_table_type": "action_data",
+          "logical_table_id": 2,
+          "pack_format": [
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 4,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 3,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 96,
+                      "field_name": "--padding_0_31--"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 2,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "--padding_0_31--"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 1,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 32,
+                      "field_name": "--padding_0_31--"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_31--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870949
+            },
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 4,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 3,
+                  "fields": [
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 96,
+                      "field_name": "smac"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 2,
+                  "fields": [
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "smac"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 1,
+                  "fields": [
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 32,
+                      "field_name": "smac"
+                    }
+                  ]
+                },
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "smac"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870948
+            }
+          ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [ { "memory_units": [ 90 ], "vpns": [ 0 ] } ],
+            "spare_bank_memory_unit": 90
+          }
+        }
+      ],
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870949,
+          "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,
+          "primitives": []
+        },
+        {
+          "name": "next.set_mcast_group",
+          "handle": 536870948,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [
+            { "name": "gid", "start_bit": 0, "position": 0, "bit_width": 16 },
+            { "name": "smac", "start_bit": 16, "position": 1, "bit_width": 48 }
+          ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ig_intr_md_for_tm.mcast_grp_a" },
+              "src": [ { "type": "immediate", "name": "gid" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.0-15" },
+              "src": [ { "type": "immediate", "name": "smac.0-15" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ethernet.src_addr.16-47" },
+              "src": [ { "type": "action_param", "name": "smac.16-47" } ]
+            }
+          ]
+        }
+      ],
+      "how_referenced": "direct"
+    }
+  ],
+  "configuration_cache": [
+    {
+      "fully_qualified_name": "pmarb.ebp18_reg.ebp_reg[0].epb_prsr_port_regs.chnl_ctrl[0]",
+      "name": "parser0_chnl_ctrl_0",
+      "value": "00a41fff"
+    },
+    {
+      "fully_qualified_name": "pmarb.ebp18_reg.ebp_reg[0].epb_prsr_port_regs.chnl_ctrl[1]",
+      "name": "parser0_chnl_ctrl_1",
+      "value": "00a41fff"
+    },
+    {
+      "fully_qualified_name": "pmarb.ebp18_reg.ebp_reg[0].epb_prsr_port_regs.chnl_ctrl[2]",
+      "name": "parser0_chnl_ctrl_2",
+      "value": "00a41fff"
+    },
+    {
+      "fully_qualified_name": "pmarb.ebp18_reg.ebp_reg[0].epb_prsr_port_regs.chnl_ctrl[3]",
+      "name": "parser0_chnl_ctrl_3",
+      "value": "00a41fff"
+    },
+    {
+      "fully_qualified_name": "pmarb.ebp18_reg.ebp_reg[0].epb_prsr_port_regs.multi_threading",
+      "name": "parser0_multi_threading",
+      "value": "19522020"
+    },
+    {
+      "fully_qualified_name": "mau[0].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_0_match_input_xbar_din_power_ctl",
+      "value": "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[1].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_1_match_input_xbar_din_power_ctl",
+      "value": "0000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[2].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_2_match_input_xbar_din_power_ctl",
+      "value": "0000000000000000000000000000000000000080000000010000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[2].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_2_parity_group_mask",
+      "value": "00000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[3].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_3_match_input_xbar_din_power_ctl",
+      "value": "0000000100000000000000000000000000000000000000000000000000000000000000200000001200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[3].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_3_parity_group_mask",
+      "value": "00000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[4].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_4_match_input_xbar_din_power_ctl",
+      "value": "00000009000000000000000000000000000000040000000000000000000000000000001c0000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[4].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_4_parity_group_mask",
+      "value": "00000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[5].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_5_match_input_xbar_din_power_ctl",
+      "value": "0000000f00000000000000000000000000000043000000000000000000000000000000680000001e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[6].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_6_match_input_xbar_din_power_ctl",
+      "value": "0000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[6].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_6_parity_group_mask",
+      "value": "00000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[7].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_7_match_input_xbar_din_power_ctl",
+      "value": "0000001c000000000000000000000000000000c0000000000000000000000000000000400000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[7].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_7_parity_group_mask",
+      "value": "00000001000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[8].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_8_match_input_xbar_din_power_ctl",
+      "value": "0000001000000000000000000000000000000000000000010000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[8].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_8_parity_group_mask",
+      "value": "00000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/montara/fabric.p4info b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/montara/fabric.p4info
new file mode 100644
index 0000000..28fc18c
--- /dev/null
+++ b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/montara/fabric.p4info
@@ -0,0 +1,741 @@
+tables {
+  preamble {
+    id: 33578399
+    name: "filtering.ingress_port_vlan"
+    alias: "ingress_port_vlan"
+  }
+  match_fields {
+    id: 1
+    name: "standard_metadata.ingress_port"
+    bitwidth: 9
+    match_type: EXACT
+  }
+  match_fields {
+    id: 2
+    name: "hdr.vlan_tag.is_valid"
+    bitwidth: 1
+    match_type: EXACT
+  }
+  match_fields {
+    id: 3
+    name: "hdr.vlan_tag.vlan_id"
+    bitwidth: 12
+    match_type: TERNARY
+  }
+  action_refs {
+    id: 16794505
+  }
+  action_refs {
+    id: 16782367
+  }
+  action_refs {
+    id: 16819938
+  }
+  action_refs {
+    id: 16826365
+  }
+  const_default_action_id: 16819938
+  direct_resource_ids: 302015144
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33619540
+    name: "filtering.fwd_classifier"
+    alias: "fwd_classifier"
+  }
+  match_fields {
+    id: 1
+    name: "standard_metadata.ingress_port"
+    bitwidth: 9
+    match_type: EXACT
+  }
+  match_fields {
+    id: 2
+    name: "hdr.ethernet.dst_addr"
+    bitwidth: 48
+    match_type: EXACT
+  }
+  match_fields {
+    id: 3
+    name: "fabric_metadata.original_ether_type"
+    bitwidth: 16
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16838162
+  }
+  const_default_action_id: 16838162
+  direct_resource_ids: 302033694
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33569146
+    name: "forwarding.bridging"
+    alias: "bridging"
+  }
+  match_fields {
+    id: 1
+    name: "hdr.vlan_tag.vlan_id"
+    bitwidth: 12
+    match_type: EXACT
+  }
+  match_fields {
+    id: 2
+    name: "hdr.ethernet.dst_addr"
+    bitwidth: 48
+    match_type: TERNARY
+  }
+  action_refs {
+    id: 16829931
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 302047449
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33565386
+    name: "forwarding.mpls"
+    alias: "mpls"
+  }
+  match_fields {
+    id: 1
+    name: "hdr.mpls.label"
+    bitwidth: 20
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16842717
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 302001577
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33589684
+    name: "forwarding.unicast_v4"
+    alias: "unicast_v4"
+  }
+  match_fields {
+    id: 1
+    name: "hdr.ipv4.dst_addr"
+    bitwidth: 32
+    match_type: LPM
+  }
+  action_refs {
+    id: 16829931
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 302038636
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33615204
+    name: "forwarding.multicast_v4"
+    alias: "multicast_v4"
+  }
+  match_fields {
+    id: 1
+    name: "hdr.vlan_tag.vlan_id"
+    bitwidth: 12
+    match_type: EXACT
+  }
+  match_fields {
+    id: 2
+    name: "hdr.ipv4.dst_addr"
+    bitwidth: 32
+    match_type: LPM
+  }
+  action_refs {
+    id: 16829931
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 302009236
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33587782
+    name: "forwarding.acl"
+    alias: "acl"
+  }
+  match_fields {
+    id: 1
+    name: "standard_metadata.ingress_port"
+    bitwidth: 9
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 2
+    name: "fabric_metadata.ip_proto"
+    bitwidth: 8
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 3
+    name: "fabric_metadata.l4_src_port"
+    bitwidth: 16
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 4
+    name: "fabric_metadata.l4_dst_port"
+    bitwidth: 16
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 5
+    name: "fabric_metadata.original_ether_type"
+    bitwidth: 16
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 6
+    name: "hdr.ethernet.dst_addr"
+    bitwidth: 48
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 7
+    name: "hdr.ethernet.src_addr"
+    bitwidth: 48
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 8
+    name: "hdr.vlan_tag.vlan_id"
+    bitwidth: 12
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 9
+    name: "hdr.ipv4.src_addr"
+    bitwidth: 32
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 10
+    name: "hdr.ipv4.dst_addr"
+    bitwidth: 32
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 11
+    name: "hdr.icmp.icmp_type"
+    bitwidth: 8
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 12
+    name: "hdr.icmp.icmp_code"
+    bitwidth: 8
+    match_type: TERNARY
+  }
+  action_refs {
+    id: 16829931
+  }
+  action_refs {
+    id: 16805452
+  }
+  action_refs {
+    id: 16815978
+  }
+  action_refs {
+    id: 16819938
+  }
+  const_default_action_id: 16819938
+  direct_resource_ids: 302000008
+  size: 256
+}
+tables {
+  preamble {
+    id: 33615740
+    name: "next.simple"
+    alias: "simple"
+  }
+  match_fields {
+    id: 1
+    name: "fabric_metadata.next_id"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16818315
+  }
+  action_refs {
+    id: 16837690
+  }
+  action_refs {
+    id: 16804266
+  }
+  action_refs {
+    id: 16841192
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 301991179
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33569488
+    name: "next.hashed"
+    alias: "hashed"
+  }
+  match_fields {
+    id: 1
+    name: "fabric_metadata.next_id"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16804266
+  }
+  action_refs {
+    id: 16841192
+  }
+  action_refs {
+    id: 16788519
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  implementation_id: 285225078
+  direct_resource_ids: 301993193
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33608545
+    name: "next.broadcast"
+    alias: "broadcast"
+  }
+  match_fields {
+    id: 1
+    name: "fabric_metadata.next_id"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16778974
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 301995093
+  size: 1024
+}
+actions {
+  preamble {
+    id: 16819938
+    name: "nop"
+    alias: "nop"
+  }
+}
+actions {
+  preamble {
+    id: 16800567
+    name: "NoAction"
+    alias: "NoAction"
+  }
+}
+actions {
+  preamble {
+    id: 16826365
+    name: "filtering.drop"
+    alias: "filtering.drop"
+  }
+}
+actions {
+  preamble {
+    id: 16782367
+    name: "filtering.set_vlan"
+    alias: "set_vlan"
+  }
+  params {
+    id: 1
+    name: "new_vlan_id"
+    bitwidth: 12
+  }
+}
+actions {
+  preamble {
+    id: 16794505
+    name: "filtering.push_internal_vlan"
+    alias: "push_internal_vlan"
+  }
+  params {
+    id: 1
+    name: "new_vlan_id"
+    bitwidth: 12
+  }
+}
+actions {
+  preamble {
+    id: 16838162
+    name: "filtering.set_forwarding_type"
+    alias: "set_forwarding_type"
+  }
+  params {
+    id: 1
+    name: "fwd_type"
+    bitwidth: 3
+  }
+}
+actions {
+  preamble {
+    id: 16815978
+    name: "forwarding.drop"
+    alias: "forwarding.drop"
+  }
+}
+actions {
+  preamble {
+    id: 16829931
+    name: "forwarding.set_next_id"
+    alias: "set_next_id"
+  }
+  params {
+    id: 1
+    name: "next_id"
+    bitwidth: 32
+  }
+}
+actions {
+  preamble {
+    id: 16842717
+    name: "forwarding.pop_mpls_and_next"
+    alias: "pop_mpls_and_next"
+  }
+  params {
+    id: 1
+    name: "next_id"
+    bitwidth: 32
+  }
+}
+actions {
+  preamble {
+    id: 16805452
+    name: "forwarding.duplicate_to_controller"
+    alias: "duplicate_to_controller"
+  }
+}
+actions {
+  preamble {
+    id: 16818315
+    name: "next.output"
+    alias: "output"
+  }
+  params {
+    id: 1
+    name: "port_num"
+    bitwidth: 9
+  }
+}
+actions {
+  preamble {
+    id: 16837690
+    name: "next.set_vlan_output"
+    alias: "set_vlan_output"
+  }
+  params {
+    id: 1
+    name: "new_vlan_id"
+    bitwidth: 12
+  }
+  params {
+    id: 2
+    name: "port_num"
+    bitwidth: 9
+  }
+}
+actions {
+  preamble {
+    id: 16804266
+    name: "next.l3_routing"
+    alias: "l3_routing"
+  }
+  params {
+    id: 1
+    name: "port_num"
+    bitwidth: 9
+  }
+  params {
+    id: 2
+    name: "smac"
+    bitwidth: 48
+  }
+  params {
+    id: 3
+    name: "dmac"
+    bitwidth: 48
+  }
+}
+actions {
+  preamble {
+    id: 16778974
+    name: "next.set_mcast_group"
+    alias: "set_mcast_group"
+  }
+  params {
+    id: 1
+    name: "gid"
+    bitwidth: 16
+  }
+  params {
+    id: 2
+    name: "smac"
+    bitwidth: 48
+  }
+}
+actions {
+  preamble {
+    id: 16841192
+    name: "next.mpls_routing_v4"
+    alias: "mpls_routing_v4"
+  }
+  params {
+    id: 1
+    name: "port_num"
+    bitwidth: 9
+  }
+  params {
+    id: 2
+    name: "smac"
+    bitwidth: 48
+  }
+  params {
+    id: 3
+    name: "dmac"
+    bitwidth: 48
+  }
+  params {
+    id: 4
+    name: "label"
+    bitwidth: 20
+  }
+}
+actions {
+  preamble {
+    id: 16788519
+    name: "next.mpls_routing_v6"
+    alias: "mpls_routing_v6"
+  }
+  params {
+    id: 1
+    name: "port_num"
+    bitwidth: 9
+  }
+  params {
+    id: 2
+    name: "smac"
+    bitwidth: 48
+  }
+  params {
+    id: 3
+    name: "dmac"
+    bitwidth: 48
+  }
+  params {
+    id: 4
+    name: "label"
+    bitwidth: 20
+  }
+}
+action_profiles {
+  preamble {
+    id: 285225078
+    name: "next.ecmp_selector"
+    alias: "ecmp_selector"
+  }
+  table_ids: 33569488
+  with_selector: true
+  size: 64
+}
+counters {
+  preamble {
+    id: 302025528
+    name: "port_counters_control.egress_port_counter"
+    alias: "egress_port_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  size: 511
+}
+counters {
+  preamble {
+    id: 301999025
+    name: "port_counters_control.ingress_port_counter"
+    alias: "ingress_port_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  size: 511
+}
+direct_counters {
+  preamble {
+    id: 302015144
+    name: "filtering.ingress_port_vlan_counter"
+    alias: "ingress_port_vlan_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33578399
+}
+direct_counters {
+  preamble {
+    id: 302033694
+    name: "filtering.fwd_classifier_counter"
+    alias: "fwd_classifier_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33619540
+}
+direct_counters {
+  preamble {
+    id: 302047449
+    name: "forwarding.bridging_counter"
+    alias: "bridging_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33569146
+}
+direct_counters {
+  preamble {
+    id: 302001577
+    name: "forwarding.mpls_counter"
+    alias: "mpls_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33565386
+}
+direct_counters {
+  preamble {
+    id: 302038636
+    name: "forwarding.unicast_v4_counter"
+    alias: "unicast_v4_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33589684
+}
+direct_counters {
+  preamble {
+    id: 302009236
+    name: "forwarding.multicast_v4_counter"
+    alias: "multicast_v4_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33615204
+}
+direct_counters {
+  preamble {
+    id: 302000008
+    name: "forwarding.acl_counter"
+    alias: "acl_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33587782
+}
+direct_counters {
+  preamble {
+    id: 301991179
+    name: "next.simple_counter"
+    alias: "simple_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33615740
+}
+direct_counters {
+  preamble {
+    id: 301993193
+    name: "next.hashed_counter"
+    alias: "hashed_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33569488
+}
+direct_counters {
+  preamble {
+    id: 301995093
+    name: "next.broadcast_counter"
+    alias: "broadcast_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33608545
+}
+controller_packet_metadata {
+  preamble {
+    id: 2868941301
+    name: "packet_in"
+    annotations: "@controller_header(\"packet_in\")"
+  }
+  metadata {
+    id: 1
+    name: "ingress_port"
+    bitwidth: 9
+  }
+  metadata {
+    id: 2
+    name: "_pad"
+    bitwidth: 7
+  }
+}
+controller_packet_metadata {
+  preamble {
+    id: 2868916615
+    name: "packet_out"
+    annotations: "@not_extracted_in_egress()"
+    annotations: "@controller_header(\"packet_out\")"
+  }
+  metadata {
+    id: 1
+    name: "egress_port"
+    bitwidth: 9
+  }
+  metadata {
+    id: 2
+    name: "_pad"
+    bitwidth: 7
+  }
+}
diff --git a/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/montara/tofino.bin b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/montara/tofino.bin
new file mode 100644
index 0000000..c0d72a5
--- /dev/null
+++ b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/montara/tofino.bin
Binary files differ
diff --git a/providers/host/src/main/java/org/onosproject/provider/host/impl/HostLocationProvider.java b/providers/host/src/main/java/org/onosproject/provider/host/impl/HostLocationProvider.java
index 0633d12..b047af2 100644
--- a/providers/host/src/main/java/org/onosproject/provider/host/impl/HostLocationProvider.java
+++ b/providers/host/src/main/java/org/onosproject/provider/host/impl/HostLocationProvider.java
@@ -506,6 +506,11 @@
 
         @Override
         public void process(PacketContext context) {
+            // FIXME: MWC-2018 HACK - ignore packet ins as we rely on the the netcfg host config
+            // But segmentrouting needs this provider
+        }
+
+        public void processPacketIn(PacketContext context) {
             if (context == null) {
                 return;
             }
diff --git a/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/LldpLinkProvider.java b/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/LldpLinkProvider.java
index 87ca7d7..56e7640 100644
--- a/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/LldpLinkProvider.java
+++ b/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/LldpLinkProvider.java
@@ -158,9 +158,9 @@
     private boolean enabled = false;
 
     private static final String PROP_USE_BDDP = "useBDDP";
-    @Property(name = PROP_USE_BDDP, boolValue = true,
+    @Property(name = PROP_USE_BDDP, boolValue = false,
             label = "Use BDDP for link discovery")
-    private boolean useBddp = true;
+    private boolean useBddp = false;
 
     private static final String PROP_PROBE_RATE = "probeRate";
     private static final int DEFAULT_PROBE_RATE = 3000;
diff --git a/tmuxp/fabric.yml b/tmuxp/fabric.yml
new file mode 100644
index 0000000..03cd22a
--- /dev/null
+++ b/tmuxp/fabric.yml
@@ -0,0 +1,9 @@
+session_name: mwc-fabric
+windows:
+- window_name: switches
+  layout: tiled
+  panes:
+    - ssh root@10.128.13.221
+    - ssh root@10.128.13.222
+    - ssh root@10.128.13.101
+    - ssh root@10.128.13.103
diff --git a/tools/package/bin/onos-service b/tools/package/bin/onos-service
index 799bb2f..6a77adb 100755
--- a/tools/package/bin/onos-service
+++ b/tools/package/bin/onos-service
@@ -21,6 +21,9 @@
 SYS_APPS=drivers
 ONOS_APPS=${ONOS_APPS:-}  # Empty means don't activate any new apps
 
+# MWC-2018
+ONOS_APPS="drivers.barefoot-pro,drivers.cavium-pro,drivers.mellanox-pro,pipelines.fabric-pro,netcfghostprovider,hostprovider,lldpprovider,proxyarp,segmentrouting,org.onosproject.fpcagent"
+
 cd $ONOS_HOME
 
 # Parse out arguments destinted for karaf invocation v. arguments that
diff --git a/tools/test/cells/mcord-head b/tools/test/cells/mcord-head
new file mode 100644
index 0000000..64dc8af
--- /dev/null
+++ b/tools/test/cells/mcord-head
@@ -0,0 +1,8 @@
+# Local VirtualBox-based ONOS instances 1,2 & ONOS mininet box
+
+export ONOS_NIC=10.92.0.*
+export OC1="10.92.0.20"
+export ONOS_GROUP="cord"
+export ONOS_USER="ubuntu"
+export ONOS_APPS="drivers"
+
diff --git a/tools/test/cells/mwc-head b/tools/test/cells/mwc-head
new file mode 100644
index 0000000..04642a1
--- /dev/null
+++ b/tools/test/cells/mwc-head
@@ -0,0 +1,8 @@
+# Local VirtualBox-based ONOS instances 1,2 & ONOS mininet box
+
+export ONOS_NIC=10.128.13.*
+export OC1="10.128.13.3"
+export ONOS_GROUP="cord"
+export ONOS_USER="cord"
+export ONOS_APPS="drivers"
+